PayPal:仪器在使用 API 处于实时模式时被拒绝
Posted
技术标签:
【中文标题】PayPal:仪器在使用 API 处于实时模式时被拒绝【英文标题】:PayPal: Instrument declined when in live mode using API 【发布时间】:2016-12-08 10:46:32 【问题描述】:我们目前正在使用用于 PayPal (php) 的其余 API,并且在沙盒中一切正常。当我们上线时,我们继续收到以下消息:
"name":"INSTRUMENT_DECLINED","details":[],"message":"The instrument presented was either declined by the processor or bank, or it can't be used for this payment.","information_link":"https://developer.paypal.com/docs/api/#INSTRUMENT_DECLINED","debug_id":"8ad80896530bd"
这是什么意思,更重要的是它没有被 php SDK 捕获为异常是有原因的。它似乎没有问题地通过(使用与示例文件中完全相同的代码来执行付款)。有没有办法捕捉到这个?
【问题讨论】:
返回的消息对我来说似乎很清楚,。你读过页面吗:developer.paypal.com/docs/api/#INSTRUMENT_DECLINED 是的。读那个。希望也许这是我们可以更改以修复它的设置(例如接受卡付款或其他东西,但我们已经尝试了所有这些)。更关心如何可靠地捕获异常。 这将是一个业务流程,而不是编码流程。 【参考方案1】:听起来银行拒绝了付款方式,或者不允许尝试购买。例如,预付借记卡现在通常能够完成某些付款,而且许多卡在地域上受到限制。
沙盒中一切正常
沙盒实际上不会向银行检查一张卡是否是好的,所以它不会抛出同样的错误。沙箱用于测试代码路径是否按预期工作。问题不在于您的脚本。
【讨论】:
所以错误正是它的错误,太棒了:-) @Dagon :-) 有时只需要解释一下就可以了。一直发生在我身上 BeetleJuice BeetleJuice BeetleJuice .. 等待 是的,我知道 :) - 我更关心为什么它没有被 sdk 捕获为异常。如果不是异常应该如何处理?【参考方案2】:以防其他人看到这个问题。
paypal文档里其实有官方的解释和解决方法。
买方的资金来源可能因多种原因失败,包括:
与金融工具关联的帐单地址无法 得到确认。交易超过卡限额。发卡机构 拒绝交易。如果资金来源失败,订单 API 返回 INSTRUMENT_DECLINED 错误。处理此错误并提供 买方有机会通过以下方式选择不同的付款方式 在 onApprove 函数中重新开始支付。
https://developer.paypal.com/docs/platforms/checkout/add-capabilities/handle-funding-failures/
【讨论】:
以上是关于PayPal:仪器在使用 API 处于实时模式时被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
PayPal REST API - 使用 PHP 和 curl 进入实时模式
PayPal REST API (PHP SDK) 成功交易未在沙盒模式下显示,在实时模式下显示
PayPal 401 未经授权在实时制作中使用 .NET REST API for Express checkout API 进行信用卡支付