2012-03-19 2 views
1

Я разрабатываю привязку Python для API адаптивных платежей Paypal, в настоящее время я реализую вызовы с параллельными/цепочками платежей, но я застрял в довольно загадочной ошибке.API Adaptive Payments PayPal не работает с несколькими приемниками

Я уже реализованы базовые «PAY» операции, как описано в Pay API Operation с параметрами следующим образом:

{'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'} 

И это работает очень хорошо, но когда я пытаюсь добавить несколько приемников в объекте 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': '[email protected]' 

Должен ли я включить что-то для проверки прикованных/параллельных платежей в песочнице или я забыл какую-либо конфигурацию в основных заголовках/параметрах для отправки?

Спасибо за любую помощь

ответ

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': '[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, который сделал трюк для меня :)

+0

Это сработало для меня. Хороший совет. – DavidWinterbottom

Смежные вопросы