2

嘿!我正在集成 Paypal 的 IPN 系统,他们的身份验证过程要求我的服务器响应 Paypal 请求,并使用 POST 到 Paypal 的参数与 Paypal 发送给我的参数完全相同(尽管带有附加字符串)。因此,我已将 params 哈希转换为字符串(格式适当)并将其发送回,但看起来结果字符串与原始 POST 参数的顺序不同(导致没有身份验证)。

任何人都知道我如何自己访问实际的 POST 参数(而不是 params 哈希),以便我可以复制它并将其发送回 Paypal?需要注意的是,我发送到 Paypal 的参数顺序需要与访问我的服务器的请求完全相同。

那有意义吗?有什么想法吗?提前致谢!

——贾里德

4

2 回答 2

3

如果我没记错的话,Paypal 的 IPN 可能有点挑剔(你真的必须准确地给他们发送的内容,并附上你的消息,否则什么都不起作用)。

您可能应该在控制器中获取原始帖子数据,向其附加一个字符串,并在将原始帖子数据发回之前使用您的原始帖子数据构造某种 HTTP 请求。我记得我上次使用paypal的IPN时这样做了,而且效果还不错。

我会使用ActionController#raw_post并在将请求发送回贝宝之前对其进行修改。另请记住,IPN 响应会超时(我认为),如果他们没有得到他们期望的结果,贝宝可能会向您发送多个具有完全相同数据的通知,因此您可能希望在之前立即向他们发送请求你的代码做任何其他事情。

于 2010-12-24T16:30:41.367 回答
0

您不能使用 params 哈希,排序会丢失。使用原始请求字符串,例如request.request_urior request.query_string

于 2010-12-24T16:13:17.803 回答