Я пытался проверить споры PayPal в песочнице и следовал этому руководству: https://developer.paypal.com/docs/integration/direct/customer-disputes/integration-guide/#sandbox -only-method .
Однако на шаге 2 (Получить разрешение от покупатель) код, предоставленный PayPal для генерации кнопки подключения, выдавал js синтаксическую ошибку, поэтому я изменил ее на следующее:
<span id='cwppButton'></span>
<script src="https://www.paypalobjects.com/js/external/connect/api.js"></script>
<script>
paypal.use( ['login'], function (login) {
login.render ({
"appid": "MY_CLIENT_ID",
"authend": "sandbox",
"scopes": "openid",
"containerid": "cwppButton",
"locale": "en-us",
"buttonType": "CWP",
"buttonSize": "lg",
"returnurl": "https://a62add0d.ngrok.io/api/payments/paypal/get-token/"
});
});
</script>
Как вы можете видеть, я изменил области видимости просто на "openid", потому что разделение ссылки, предоставленные PayPal в этом примере, выдавали мне ошибку «Invalid Scope». Однако на этом шаге я получил маркер доступа. Следующая проблема, с которой я столкнулся, была на шаге 4 (Сгенерировать JSON веб-токен для подтверждения авторизации PayPal), предоставленный код PayPal выдал синтаксическую ошибку, поэтому я заменил ее следующим образом:
<span id='cwppButton'></span>
<html>
<script>
function base64url(source) {
encodedSource = btoa(source);
encodedSource = encodedSource.replace(/=+$/, '"');
encodedSource = encodedSource.replace(/\+/g, '-');
encodedSource = encodedSource.replace(/\//g, '-');
return encodedSource;
}
function generateJWT() {
var header = {"alg": "none", "typ": "JWT"};
var data = {"iss" :"MY_CLIENT_ID",
"email" : "casino.player@gmail.com" };
document.write(base64url(JSON.stringify(header)) + "." +
base64url(JSON.stringify(data)) + ".");
}
</script>
<body onload="generateJWT()"/>
И в результате при выполнении запроса на создание спора на шаге 6 у меня появляется эта ошибка:
{
"error": "invalid_request",
"error_description": "No permissions to set target_client_id"
}
У меня вопрос, как правильно настроить и протестировать PayPal споры в песочнице? Если кто-то сталкивался с такой же проблемой при тестировании споров?