如何在 Rails 中实现 Paypal 回调? (获取 InvalidAuthenticityToken 错误)

Posted

技术标签:

【中文标题】如何在 Rails 中实现 Paypal 回调? (获取 InvalidAuthenticityToken 错误)【英文标题】:How to implement Paypal callbacks in Rails? (Getting InvalidAuthenticityToken error) 【发布时间】:2011-08-26 22:22:55 【问题描述】:

编辑:这是一个大部分 Rails 问题

我正在尝试实现即时付款通知 API (IPN),如果 Paypal 付款通过,它会调用您的服务器。我现在看到的问题是当 Paypal IPN 访问我指定的 url 时,它失败并出现以下错误:

> 开始 POST "/checkout/complete?id=1&amount=3445&authenticity_token=NkOwgJ1H2TEmwO6T+hROu96kWr4yGcTzHD6MbTswgyU="

> ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

它使用的authenticity_token 是我在重定向到Paypal 时在初始阶段传递的。显然,这不是一个有效的选择。但是,当我将其留空时,它会引发相同的错误。

我想知道我是否可以禁用authentity_token 要求或以某种方式绕过它,以便当Paypal 向我的应用发布时它可以顺利通过而不会出现任何错误。

【问题讨论】:

【参考方案1】:

听起来像是 csrf 导致了问题,将 skip_before_filter :verify_authenticity_token 添加到您的控制器应该允许它处理。

如果您使用该authenticity_token 作为安全措施,则将其存储并在您的控制器中手动检查。

【讨论】:

以上是关于如何在 Rails 中实现 Paypal 回调? (获取 InvalidAuthenticityToken 错误)的主要内容,如果未能解决你的问题,请参考以下文章

我想在 Rails 中实现 PayPal Digital Goods Express Checkout API

在 Rails 中实现我们的计费系统:Paypal、纯商家帐户/网关,还是 Chargify 之类的?

如何使用api在codeigniter中实现paypal定期付款

如何使用 c# 在 paypal 中实现 DoDirectPayment

如何在 android 中实现 Paypal Native Checkout SDK?

如何在 Rails 中实现无限滚动