PayPal Adaptive Payments API 因多个接收者而失败

Posted

技术标签:

【中文标题】PayPal Adaptive Payments API 因多个接收者而失败【英文标题】:PayPal Adaptive Payments API failing with multiple receivers 【发布时间】:2012-04-03 13:42:38 【问题描述】:

我正在为 Paypal 的 Adaptive Payments API 开发 Python 绑定,目前我正在实现并行/链式支付调用,但我遇到了一个相当神秘的错误。

我已经实现了Pay API Operation中详述的基本“PAY”操作,参数如下:

'actionType': 'PAY',
'cancelUrl': 'http://my_domain.com/cancel_url',
'clientDetails.applicationId': 'My Application ID',
'clientDetails.ipAddress': 'MY IP',
'currencyCode': 'USD',
'receiverList.receiver(0).amount': 15,
'receiverList.receiver(0).email': 'sandbox_test_account@email.com',
'requestEnvelope.detailLevel': 'ReturnAll',
'requestEnvelope.errorLanguage': 'en_US',
'returnUrl': 'http://my_domain.com/cancel_url'

而且它工作得非常好,但是当我尝试在 receiverList 对象中添加更多接收器时,Paypal 向我返回了一个没有说明任何内容的错误:

'error(0).category': ['Application'],
'error(0).domain': ['PLATFORM'],
'error(0).errorId': ['580001'],
'error(0).message': ['Invalid request: 0'],
'error(0).severity': ['Error'],
'error(0).subdomain': ['Application'],
'responseEnvelope.ack': ['Failure'],
'responseEnvelope.build': ['2486531'],
'responseEnvelope.correlationId': ['f454f1118f799'],
'responseEnvelope.timestamp': ['2012-03-18T17:48:10.534-07:00']

仅此而已,它没有说明请求无效的位置,我真的找不到将第一个参数集更改为添加的任何问题:

'receiverList.receiver(1).amount': 15,
'receiverList.receiver(1).email': 'sandbox_2nd_test_account@email.com'

我是否必须启用某些东西才能在 Sandbox 中测试链式/并行支付,或者我是否忘记了基本标头/参数中的某些配置才能发送?

感谢您的帮助

【问题讨论】:

【参考方案1】:

联系 PayPal 后,他们告诉我尝试按顺序发送 receiverList 对象,例如:

'actionType': 'PAY',
'cancelUrl': 'http://my_domain.com/cancel_url',
'clientDetails.applicationId': 'My Application ID',
'clientDetails.ipAddress': 'MY IP',
'currencyCode': 'USD',
'receiverList.receiver(0).amount': 15,
'receiverList.receiver(0).email': 'sandbox_test_account@email.com',
'receiverList.receiver(1).amount': 15,
'receiverList.receiver(1).email': 'sandbox_test_account@email.com',
'requestEnvelope.detailLevel': 'ReturnAll',
'requestEnvelope.errorLanguage': 'en_US',
'returnUrl': 'http://my_domain.com/cancel_url'

当我将正文实现为 Python 字典时,它变得无序,所以我开始使用 OrderedDict,这对我有用 :)

【讨论】:

以上是关于PayPal Adaptive Payments API 因多个接收者而失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 Paypal Adaptive Payments 设置标题图片

集成 Paypal Adaptive Payments SDK 时未加载类

PayPal Adaptive Payments REST API 还是经典?

更改 Paypal Adaptive Payments 登录语言

使用 Paypal Adaptive Payments API 添加“给收件人的消息”

PayPal Adaptive Payments API 因多个接收者而失败