2013-04-06 2 views
3

У меня возникли трудности с внедрением неявных платежей в PayPal, и, к сожалению, в ответе сообщения об ошибке от PayPal есть очень ограниченные детали.PayPal Ошибка неявного платежа 580001

Вот запрос:

{ 
    "actionType": "PAY", 
    "currencyCode": "USD", 
    "cancelUrl": "http://my_domain.com/cancel_url", 
    "returnUrl": "http://my_domain.com/return_url", 
    "requestEnvelope.errorLanguage": "en_US", 
    "requestEnvelope.detailLevel": "ReturnAll", 
    "senderEmail": "[email protected]", 
    "receiverList.receiver(0).amount": 50, 
    "receiverList.receiver(0).email": "[email protected]" 
} 

Вот заголовки я устанавливаю:

"Content-Type", "application/json" 
    "Accept-Language", "en_US" 

    "X-PAYPAL-SECURITY-USERID", "username" 
    "X-PAYPAL-SECURITY-PASSWORD", "pwd"       
    "X-PAYPAL-SECURITY-SIGNATURE", "sig"       
    "X-PAYPAL-APPLICATION-ID", "My App id" 
    "X-PAYPAL-REQUEST-DATA-FORMAT", "JSON" 
    "X-PAYPAL-RESPONSE-DATA-FORMAT", "JSON" 

Вот ответ:

{ 
    "responseEnvelope":{ 
     "timestamp":"2013-04-06T12:02:41.011-07:00", 
     "ack":"Failure", 
     "correlationId":"3842d361b077d", 
     "build":"5563463"},"error":[{ 
     "errorId":"580001", 
     "domain":"PLATFORM", 
     "subdomain":"Application", 
     "severity":"Error", 
     "category":"Application", 
     "message":"Invalid request: {0}" 
     }] 
} 

ответ

2

Я просто имел точно такую ​​же проблему и не мог Найти ответ нигде. Оказывается, я использовал запрос GET вместо POST. Странно, однако, что errorId 580001 нигде не встречается в своих документах.

+2

К сожалению, по моему опыту документации по Paypal не хватает во многих отношениях ... :-( – Max

+2

@Max Я только начинаю с Paypal, а отсутствие хорошей документации делает кривую обучения намного круче, чем нужно ! – antonagestam

+0

Здесь http://stackoverflow.com/q/9939960/1057961 вы можете найти мой опыт работы с paypal (в основном это связано с созданием зашифрованной кнопки PayNow для сторонних клиентов) – Max

0

API адаптивных платежей не принимает пробел в полезной нагрузке запроса, удаляет все пробелы и символы новой строки и дает ему еще одну попытку. Принял меня, чтобы понять это.

0

Еще одна вещь, которую нужно обратить внимание - это кодирование. У меня была эта ошибка и я понял, что это произошло из-за амперсанда в поле «memo». Если вы отправляете запрос как NVP, убедитесь, что URL-адрес закодирован, где это возможно.

0
let payload={ 
    "actionType":"PAY",        
    "currencyCode":"USD",       
    "receiverList":{ 
    "receiver":[{ 
     "amount":1.00,        
     "email":"buyer email"  
    }] 
    }, 
    "returnUrl":"succes url", 
    "cancelUrl":"cancel url", 
    "requestEnvelope":{ 
    "errorLanguage":"en_US",       
    "detailLevel":"ReturnAll"       
    } 
} 
let url = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"; 
    return this.http.post(url, payload, { headers: headers }) 
    headers.append('X-PAYPAL-SECURITY-USERID', 'security id'); 
    headers.append('X-PAYPAL-SECURITY-PASSWORD', 'password'); 
    headers.append('X-PAYPAL-SECURITY-SIGNATURE', 'signature'); 
    headers.append('X-PAYPAL-REQUEST-DATA-FORMAT', 'JSON'); 
    headers.append('X-PAYPAL-RESPONSE-DATA-FORMAT', 'JSON'); 
    headers.append('X-PAYPAL-APPLICATION-ID', 'APP-id'); 
+0

Было бы полезно только Если вы предоставите некоторые детали или пояснения по поводу решения. Только код только ответы не являются полезными. – Thangadurai

0

В качестве другой причины этой проблемы, убедитесь, что amount свойство для каждого приемника не содержит запятую, так как это также будет ломаться. То есть 1000.00 вместо 1,000.00.

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