Как проверить успешность при получении заказа с помощью Paypal REST API SDK для PHP V2 - PullRequest
0 голосов
/ 06 июня 2019

Я создаю интеграцию 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» в коде, чтобы сказать клиенту «все хорошо, переходите к« против », вот проблема, сделайте это снова».

Спасибо

...