#javascript #paypal
#javascript #paypal
Вопрос:
Я получаю сообщение об ошибке на заключительном этапе платежа Paypal, когда я выполняю его. Насколько я вижу, это правильно, у меня нет ошибок, но это то, что он возвращает:
{"тело":"","заголовки":{"Тип содержимого": "приложение / json", "Дата":"Пн, 30 июн 2014 18:10:56 GMT","Content-Length":"0","PROXY_SERVER_INFO":"host=slcsbjava1.slc.paypal.com;threadId=911","Paypal-Debug-Id":"b190b1adb3748","Server":"Apache-Coyote/1.1"},"status":401}
Это код, который я использую:
execute = XHR.send('POST', 'https://api.sandbox.paypal.com/v1/payments/payment/' ppid[0].paymentid '/execute', {
"header": {
"Authorization": "Bearer " auth,
"Content-Type" : "application/json"
},
"parameters": {
"payer_id": pid
}
});
console.log(execute);
Я не могу понять, что означает отладка Paypal, и я просмотрел ее, но в основном я вижу проблемы с PHP, а не с JS и cURL.
Я видел в посте путаницу REST API с Classic, но я воспользовался инструкциями из интерактивного руководства Paypal:https://devtools-paypal.com/guide/pay_paypal/curl?interactive=OFFamp;env=sandbox
Кто-нибудь может мне помочь с этим?
Обновить
Выяснено с помощью отладки
автор
был пуст, поэтому я исправил это, и теперь получаю новую ошибку, которая заключается в следующем:
Ошибка: {"сообщение":"com.mongodb.BasicDBList не может быть преобразован в java.util.Map", "код":"0"} ( @ 8 : 45 ) -> var innerResult = GlobalXHRInner.send(метод, URL, GlobalJSON.stri
Эта ошибка изменяется в зависимости от того, как я отправляю окончательные заголовки и параметры:
var newauth = "Bearer " ppid[0].auth;
var info = {"headers": [{"Authorization": "' newauth '", "Content-Type" : "application/json"}], "parameters": [{"payer_id": "' pid '"}]};
console.log(info);
execute = XHR.send('POST', 'https://api.sandbox.paypal.com/v1/payments/payment/' ppid[0].paymentid '/execute', info );
console.log(execute);
response.success(execute);
Если я изменю :
var info = {"headers": [{"Authorization": "' newauth '", "Content-Type": "application /json"}], "parameters": [{"payer_id": "' pid '"}]};
к этому:
var info = '{"headers": [{"Authorization": "' newauth '", "Content-Type": "application /json"}], "parameters": [{"payer_id": "' pid '"}]}';
При добавлении предложения я получаю ошибку недопустимого объекта, которую я проверил с помощью средства проверки json и передал. Действительно смущен этими ошибками, поскольку я следовал руководству: (
Ответ №1:
Это сообщение об ошибке в соответствии с документацией PayPal означает следующее:
Ошибки аутентификации Код состояния HTTP: 401
Ошибки аутентификации часто вызываются проблемами, связанными с токенами доступа:
Убедитесь, что маркер доступа включен и корректен.
Убедитесь, что токен доступа не истек.
Информация о вызове API разработчика PayPal
Вот дополнительная информация о токенах доступа от токена доступа разработчика PayPal:
При выполнении вызовов API сделайте запрос, добавив токен доступа в заголовок «Авторизация», используя следующий синтаксис (как определено в протоколе OAuth 2.0):
Authorization: {tokenType} {accessToken}
Пример: Authorization: Bearer EEwJ6tF9x5...4599F
Срок действия токена доступа и истечение
Токены доступа, выпущенные PayPal, могут использоваться для доступа ко всем конечным точкам REST API. Срок службы этих токенов ограничен, и вы должны написать код для определения истечения срока действия токена доступа. Вы можете сделать это, либо отслеживая значение ‘expires_in’, возвращаемое в ответе на запрос токена (значение выражается в секундах), либо обрабатывая ответ об ошибке (401 Несанкционированный) с конечной точки API при обнаружении токена с истекшим сроком действия.
Комментарии:
1. спасибо, я обнаружил, что после отладки это была пустая переменная auth, которая только для того, чтобы выдать мне новую ошибку, которую я обновил, поскольку я не уверен, является ли это частью проблемы, поскольку я получаю другую ошибку, если я изменяю одну вещь, которая, по-видимому, все еще действительна?