我正在编写代码,以涵盖卡被拒绝等负面场景。根据文档,对订单执行此操作的唯一方法是使用标头PayPal-Mock-Response https://developer.paypal.com/tools/sandbox/negative-testing/request-headers/
然而,它对我不起作用,我得到了403错误与空响应每次我试图添加“PayPal-Mock-Response”头与任何错误,不能让它在所有的工作
示例,请求:
POST https://api-m.sandbox.paypal.com/v2/checkout/orders
params:
{
"method": "post",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer A21[reducted]",
"PayPal-Mock-Response": "{\"mock_application_codes\":\"DUPLICATE_INVOICE_ID\"}"
},
"body": "{\"intent\":\"CAPTURE\",\"purchase_units\":[{\"custom_id\":89534,\"description\":\"my item name\",\"reference_id\":648,\"amount\":{\"currency_code\":\"USD\",\"value\":\"5.01\"}}]}"
}
回复:
{
"statusCode": 403,
"responseText": ""
}
我正在使用nodejs,node-fetch包,auth令牌是正确的,因为我有积极的场景工作,403错误是只有当我添加“PayPal-Mock-Response”头抛出.
我做错了什么,或者有没有其他方法在沙盒上进行失败的付款?
1条答案
按热度按时间xu3bshqb1#
DUPLICATE_INVOICE_ID
不是模拟/v2/checkout/orders创建API调用的有效错误...开机自检至https://api-m.sandbox.paypal.com/v2/checkout/orders
但是,对于v2 orderscaptureAPI调用,这是一个有效错误:
开机自检到https://api.sandbox.paypal.com/v2/checkout/orders/:id/capture
这个例子实际上是在你参考的文档中给出的。
--概念上:我知道在捕获时将检查发票ID。您可以创建任意数量的订单(用于尝试结帐),如您所需,对于给定的发票ID,在为同一ID重试审批时不存在重复问题。重复发票错误是在尝试捕获(创建交易)ID,该ID已经导致为该帐户创建成功交易。要点是防止重复支付,不阻止尚未导致创建付款的重复结帐尝试。