我正在试图弄清楚如何使用braintree进行测试,而且我遇到了带宽错误的问题。
response = ::Braintree::Customer.create(payment_method_nonce: Braintree::Test::Nonce::Transactable)
token = response.customer.credit_card.first.token
#so far so good
response = ::Braintree::Transaction.sale(payment_method_token: token, amount: "1.00")
#still good
response = ::Braintree::Transaction.sale(payment_method_token: token, amount: "1.00")
#response is failure
# => Braintree::ErrorResult ... status: "gateway_rejected"
所有这一切都没有停顿 如果我再等一下再次运行销售线,它又会再次运作..
这当然会给测试脚本带来问题。我可以把与BT的实际连接分开,但我有点担心这个。我应该吗?
答案 0 :(得分:1)
看起来可能是速率限制错误。在他们的帮助/文档/网站上搜索与速率限制相关的信息,这样您就可以知道限制是什么,并解决它们。
但是......如果您在自动测试中谈论测试 - 我建议您不要在测试套件中使用外部服务,并嘲笑一切。理想情况下,您希望您的测试套件能够在网络连接中断时运行,并且当第三方服务速度较慢或网络速度较慢时您不希望它变慢。
如果您真的想要对所有第三方服务进行完整的集成测试,您可以创建一组特殊的测试,这些测试使用" @ external"等进行注释,然后安排他们每周运行一次或者只是为了标记一些奇怪的变化或错误。
答案 1 :(得分:1)
我在Braintree工作。如果您有更多问题,可以随时get in touch with our support team。
您可以在transaction statuses page of the API docs上看到gateway_rejected
的含义:
网关被拒绝
网关拒绝了该交易,因为AVS,CVV,重复或欺诈检查失败。
交易还有gateway rejection reason,在这种情况下为duplicate
。
您可以找到有关duplicate checking settings in the control panel docs的更多信息:
配置重复事务检查
默认情况下启用重复事务检查,沙箱和生产环境中都有30秒窗口。具有帐户管理员权限的用户可以更新或禁用这些设置。
- 登录控制面板
- 导航至设置>处理>重复交易检查
- 单击编辑以调整时间窗口,或单击启用/禁用以打开/关闭该功能
醇>