Я создаю интеграцию Paypal, используя REST API SDK для PHP V2, в значительной степени следуя базовой интеграции https://developer.paypal.com/docs/checkout/integrate/, но создавая платеж, а затем захватывая его с помощью PHP и, наконец, возвращая JSON обратно клиенту.
Все работает нормально, но при захвате используется что-то вроде следующего:
$capture_request = new OrdersCaptureRequest($orderId);
try {
$client = new PayPalHttpClient($this->environment);
$response = $client->execute($capture_request);
}
catch(HttpException $exception){
// Return error to client
}
// Point X - How I do know its a success?
Как только ответ в $ будет возвращен, как я узнаю, что платеж прошел успешно?
Пример кода в репозитории показывает, что ответ «201» в точке «Точка X» означает, что «Захвачено успешно», означает ли это, что оно успешно получено, платеж успешен, все хорошо….Мне нужно предупредить пользователя?
Документы PayPal здесь https://developer.paypal.com/docs/checkout/integration-features/funding-failure/ говорят о возврате ответа клиенту и ТОГДА проверяют сбой финансирования через «INSTRUMENT_DECLINED» в Javascript
paypal.Buttons({
onApprove: function (data, actions) {
return fetch('CALL_MY_PHP_CODE', {
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
orderID: data.orderID
})
}).then(function(res) {
return res.json();
}).then(function(details) {
if (details.error === 'INSTRUMENT_DECLINED') {
return actions.restart();
}
});
}
}).render('#paypal-button-container');
так что, если есть сбой финансирования, в php это тоже возвращается с 201?
Если бы я мог проверить с помощью «отрицательных тестов», я мог бы это выяснить, но яне удалось получить их, и я даже не уверен, что они работают правильно для REST API.
Я пытался генерировать ошибки, используя учетную запись Sandbox безсредств и т. д., и я не выхожу за пределы фазы создания (что нормально), но я не знаю, какие ошибки мне нужно искать при получении платежа.
Так что мой вопрос в значительной степениPHP, что мне нужно в точке «X» в коде, чтобы сказать клиенту «все хорошо, переходите к« против », вот проблема, сделайте это снова».
Спасибо