1

PaypalのAdaptivePaymentsAPI用のPythonバインディングを開発しています。現在、並列/連鎖支払い呼び出しを実装していますが、かなり不可解なエラーで立ち往生しています。

次のパラメータを使用して、PayAPI操作で詳しく説明されている基本的な「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で連鎖/並列支払いをテストするために何かを有効にする必要がありますか、それとも送信する基本的なヘッダー/パラメーターの構成を忘れましたか?

助けてくれてありがとう

4

1 に答える 1

2

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私のためにトリックをしたaを使い始めました:)

于 2012-05-02T20:40:27.963 に答える