gpt4 book ai didi

ruby-on-rails - Paypal 快速结帐在本地工作,但不在 rails 中生产。返回一个名为 No Token Passed 的错误

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:17 25 4
gpt4 key购买 nike

在 rails 中使用快速结帐和 activemerchant gem 我创建了一个钱包功能,您可以在其中通过 paypal(快速结帐)将资金添加到钱包中。这在本地有效,但不适用于生产。

在生产环境中,只要我点击 paypal 结帐按钮,我就会被重定向到以下没有 token 的 url(如您所见)

https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=

此处空白页上唯一的内容是“No token passed”

这是 heroku 中的生产日志 enter image description here

在为相同的操作设置的本地开发中,我得到:

https://www.sandbox.paypal.com/in/cgi-bin/merchantpaymentweb?cmd=_flow&SESSION=-ubDPzpaPpBkgHFsZshLh8PR4jHMxWQYbCjt5Wlq2Tcj8SAtu0iW3Vysmhq&dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0fb0124e9b61f737ba21b0819848475f0da5465a2ea26eae033cbe3bda

(我从 session 中删除了几个字符,所以上面的 url 不起作用)可以选择付款。

这是开发日志的截图 enter image description here

相关代码如下:

def express_checkout
response = EXPRESS_GATEWAY.setup_purchase(BigDecimal.new(params[:amount])*100,
ip: request.remote_ip,
return_url: new_payment_url,
cancel_return_url: wallet_url,
currency: "USD",
allow_guest_checkout: true,
items: [{name: "Add Money", description: "Adds money to wallet ", amount: BigDecimal.new(params[:amount])*100}]
)
redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token)
end

以下是与之相关的全部代码。代码分为以下文件名作为标题 - activemerchant.rb、payments_controller.rb、payment.rb 和 wallet.html.erb

http://pastebin.com/caAGd2ST

你能告诉我为什么这适用于开发而不适用于生产吗?我应该怎么做?

最佳答案

我相信您缺少生产环境的 yml 配置。通常,这些第 3 方集成需要一个 yml 文件,其中包含每个环境的配置/设置。特别是 PayPal,当他们有不同的 ID、 secret 等时。

根据您的评论,您的环境变量似乎没有为生产环境加载。

关于ruby-on-rails - Paypal 快速结帐在本地工作,但不在 rails 中生产。返回一个名为 No Token Passed 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37759089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com