我正在为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': '[email protected]',
'requestEnvelope.detailLevel': 'ReturnAll',
'requestEnvelope.errorLanguage': 'en_US',
'returnUrl': 'http://my_domain.com/cancel_url'}


它确实运行良好,但是当我尝试在接收者列表对象中添加更多接收者时,贝宝返回了一个我什么也没说的错误:

{'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': '[email protected]'


我是否必须启用某些功能来测试沙盒中的链接/并行支付,还是忘记了要发送的基本标头/参数中的某些配置?

谢谢你的帮助

最佳答案

联系贝宝后,他们告诉我尝试按顺序发送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': '[email protected]',
'receiverList.receiver(1).amount': 15,
'receiverList.receiver(1).email': '[email protected]',
'requestEnvelope.detailLevel': 'ReturnAll',
'requestEnvelope.errorLanguage': 'en_US',
'returnUrl': 'http://my_domain.com/cancel_url'}


当我将主体实现为Python字典时,它变得无序,所以我开始使用OrderedDict帮了我大忙:)

关于python - PayPal自适应支付API失败,多个接收者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9763951/

10-12 18:26