作为我的rails应用程序的一部分,用户可以向我们的慈善机构捐款。我只是将用户链接到支付处理公司网站上的外部表单,并在参数中使用我们的唯一ID。一旦事务成功,它就会重定向回我的应用程序上的URL。
作为此过程的一部分,填写在表单,电子邮件地址,捐款金额等上的信息应该回发到我网站上的URL。该信息将作为表单发布回发。我已将URL的路由设置为发布请求。我目前正在查看标题,但我看不到这些信息,到目前为止我已尝试过:
<%= params %>
<%= request.POST %>
<%= request.headers %>
<%= request.env["HTTP_ACCEPT"] %>
<%= request.env["HTTP_HOST"] %>
<%= request.env["HTTP_USER_AGENT"] %>
我现在如何访问这些信息?与我的朋友说,他说信息应该在HTTP标题中,但我不确定我应该做些什么才能查看它。我需要检查交易是否成功,应该返回'transStatus'
,其值为Y / N.
任何帮助表示赞赏,道歉我是新手。
由于
利
答案 0 :(得分:0)
如果信息被POST
发送回您的应用程序,您应该可以通过Rails params
哈希访问它们,如
params[:transStatus]
等等。在回调操作中,尝试检查params
哈希并查看它包含的内容。
如果您想直接处理原始发布数据,可以使用ActionDispatch::Request
's raw_post
方法。
修改:如果您想访问请求的标头,可以使用ActionDispatch::Request
's headers
方法进行操作。它只提供了一个包含所有请求标头的类似哈希的结构。随意检查,迭代和访问您需要的那些!
作为一个具体的例子,假设您期望的标题是'transStatus'
,您可以在回调操作中执行类似的操作(控制器控制杆):
success = (request.headers['transStatus'] == 'Y') ? true : false
if success
# transaction succeeded - success path here...
else
# failure path
end
如果您不确定它是否为transStatus
,那么您必须咨询外部服务的API,询问其开发人员,或者只是通过检查您收到的请求(headers
和params
)。