我正在使用PayumBundle(https://github.com/Payum/PayumBundle)和我的symfony应用程序(2.8.49)。
我想测试我的应用程序如何与付款错误响应交互。
使用条纹网关,这不是问题,因为某些卡号会使条纹 API 呈现错误响应。
但是有了PayPal,我不知道该怎么做? 我阅读了PayPal沙盒 API (https://developer.paypal.com/docs/api/test-values/#) 的文档,他们是这样说的:
要触发SENDER_EMAIL_UNCONFIRMED模拟响应,请在 POST v1/付款/付款调用中将项目[0]/注释值设置为 ERRPYO002。
curl -X POST https://api.sandbox.paypal.com/v1/payments/payouts
-H "content-type: application/json"
-H "Authorization: Bearer Access-Token"
-d '{
"sender_batch_header": {
"sender_batch_id": "1524086406556",
"email_subject": "This email is related to simulation"
},
"items": [
{
"recipient_type": "EMAIL",
"receiver": "payouts-simulator-receiver@paypal.com",
"note": "ERRPYO002",
"sender_item_id": "15240864065560",
"amount": {
"currency": "USD",
"value": "1.00"
}
}]
}'
如何使用Payum捆绑包测试PayPal错误?
提前谢谢你
您应该评估的是响应和状态代码。要生成请求,您可以使用简化所有请求的 Guzzle。
问候!
更新/答案
实际上,我设法进行了阴性测试。
您要做的是首先在PayPal仪表板中为您的企业帐户启用阴性测试 检查此 URL 以获取文档:https://developer.paypal.com/docs/classic/lifecycle/nt-classic/#
然后,一旦启用了阴性测试,在付款字段中,在付款结帐期间,您需要选择与出现错误的PayPal金额匹配的金额,这些金额在此链接中列出: https://developer.paypal.com/docs/classic/api/errors/#10000-to-10099
例如,如果要触发与金额相关的错误代码 10009,请在您的网站上选择要使用 PayPal 帐户支付的金额时,选择金额"100.09"。 如果需要错误代码 10014,请选择金额"100.14" 等等
等等我一开始没有发现这一点的原因是PayPal文档不够清晰。 在他们的文档中,https://developer.paypal.com/docs/classic/lifecycle/nt-classic/#test-api-error-handling-routines,
他们不会明确告诉您"输入等于小数点右侧最后两位数字的错误代码的金额"。 相反,他们告诉你: "要在与金额相关的字段上触发错误条件,请将错误代码值指定为小数点右侧两位数的数字。例如,指定值 107.55 以触发 10755 错误。
这对我来说不是很清楚。
问题解决了。