Я пытаюсь настроить подписку PayPal.
Я на этапе создания плана, как описано PayPal по этому URL: https://developer.paypal.com/docs/subscriptions/integrate/integrate-steps/#
В примере показано, как выполнить HTTP-вызов с помощью curl.Это не вариант для меня (по причинам, которые слишком долго, чтобы вдаваться в подробности).Насколько я понимаю, это обычный HTTP-вызов, который можно сделать с любого клиента.В этом рассуждении нет фатальной ошибки, не так ли?Мои единственные варианты - это JavaScript и .Net.
Мой код JavaScript выглядит следующим образом.Насколько я могу судить, он идеально соответствует керлингу, который дает PayPal.Обратите внимание, что на предыдущем шаге я загрузил переменную myJson со структурой Json из примера по указанному выше URL-адресу PayPal.Затем переменная используется в xhttp.send (myJson):
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
console.log(xhttp.responseText);
}
};
xhttp.open("post", "https://api.sandbox.paypal.com/v1/payments/billing-plans/", false);
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.setRequestHeader("Authorization", "Bearer A21AAGmdTiDvfvUmaaCAten63De5gSd8mBkkHY1KoeOzN5USgucVo1A9t1wXZeIw1UciyDcMKzCL8H43G_7ECPKI2BBO_l_Sw");
xhttp.send(myJson);
console.log(xhttp.status)
Код доступа, указанный в заголовке авторизации, был получен с помощью Postman, так же как PayPalнаправляет, с URL песочницы и моей песочницей client_id и secret.(Кроме того, в реальном коде он находится на одной строке с Bearer, разделенным пробелом. Как показано здесь, редактор переполнения стека переносит его на новую строку.)
КогдаЯ запускаю это, я получаю ошибку HTTP 403.Когда я Google 403 я получаю: 403 Запрещено.Клиент не имеет прав доступа к контенту, то есть они не авторизованы, поэтому сервер отказывается дать правильный ответ.В отличие от 401, идентификатор клиента известен серверу.
Кто-нибудь может помочь?Я был на этом в течение нескольких дней, и я в тупике.Спасибо:)