调试 ActiveMerchant;需要完整的请求和响应。如何?

Posted

技术标签:

【中文标题】调试 ActiveMerchant;需要完整的请求和响应。如何?【英文标题】:Debugging ActiveMerchant; need full request and response. How to? 【发布时间】:2012-12-06 02:50:02 【问题描述】:

Rails 3.0.10 和 activemerchant gem 1.29.3

我的应用在沙盒中运行良好,但生产模式下的交易失败并显示“安全标头无效”、“ErrorCode”=>“10002”

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

建议将此添加到配置块

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...'
    )

谢谢。

【问题讨论】:

【参考方案1】:

需要添加如下附加行:

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

在环境中的同一配置块内

【讨论】:

【参考方案2】:

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

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

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

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

【讨论】:

并不是这个问题的真正答案,是吗?我同意,应该有某种方式让它输出。这就是我的问题的本质...... 是的,当您不提供要查看的实际课程时,这是对问题的回答。向我们展示函数的用法根本没有用。如果您想提供,我很乐意为您找到答案。不过,我很感激尝试提供帮助的否定。下次我看到您提出我可以提供帮助的问题时,我会记住这一点。 这个:ActiveMerchant::Billing::PaypalGateway 是第三方库的一部分... activemerchant gem,在 ruby​​ 中。如果您知道这一点,请使用实际答案更新您的答案。否则,反对票成立。谢谢

以上是关于调试 ActiveMerchant;需要完整的请求和响应。如何?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Webmock 伪造成功的 ActiveMerchant 响应

Spring RestTemplate - 如何启用请求/响应的完整调试/日志记录?

如果你使用 Google Checkout,是不是还需要在 Rails 中使用 ActiveMerchant/Spree/some payment gateway?

Paypal、定期计费和 ActiveMerchant

与 ActiveMerchant 一起使用的最佳支付网关是啥?

chrome调试工具高级不完整使用指南(优化篇)