5

Rails 3.0.10 和 activemerchant gem 1.29.3

我的应用程序在沙盒中运行良好,但生产模式下的事务因“安全标头无效”、“错误代码”=>“10002”而失败

在审查了所有配置参数一百万次之后,我们向贝宝发起了支持请求,他们认为我们遇到了错误的端点。他们要求对交易进行完整跟踪,包括标头等,所以我试图弄清楚如何做到这一点。我找到了这篇文章

建议将其添加到配置块

ActiveMerchant::Billing::PaypalGateway.wiredump_device = File.new(File.join([Rails.root, "log", "paypal.log"]), "a")

但这只会导致日志为空;什么都没有倾倒它。

那么,如果可能的话,如何从 GATEWAY 对象中获取此信息?这是生产配置,其格式与 staging env 中使用的格式相同。

::GATEWAY = ActiveMerchant::Billing::PaypalGateway(
      :login => 'me_api1.blah...',
      :password => 'string...',
      :signature => 'longer string...'
    )

谢谢。

4

2 回答 2

5

需要添加的附加行如下:

ActiveMerchant::Billing::PaypalGateway.wiredump_device.sync = true

在环境中的同一配置块内

于 2012-12-27T19:07:40.473 回答
-4

在您使用的类库中的某个地方应该有一个函数可以为您输出它(如果它是一个构建良好的库,那就是。)

但是,即使没有这个,您也应该能够查看该 PaypalGateway 函数以查看它在何处/如何设置端点。它要么对值进行硬编码,要么根据您在类中其他位置配置的某些沙箱选项设置不同的端点。

如果不查看您正在使用的实际类库,很难告诉您更多信息,但我同意它必须是不正确的凭据或不正确的端点。当它不仅仅是无效的凭据时,我从未见过安全标头错误,这意味着您的值不正确或者您访问了错误的端点。

如果您想发布整个函数(或者甚至可能从其他函数设置整个库作为端点),我可以看一下并为您找到问题。

于 2012-12-19T00:13:05.027 回答