Кнопки PayPal Checkout - связь клиент / сервер - PullRequest
0 голосов
/ 09 июля 2020

Я интегрирую интеллектуальную кассу Paypal. Я не понимаю, что часть javascript ожидает от сервера. Это то, что у меня есть в JS

...
...
createOrder: function(data, actions) {
    return fetch('/paypal/sandbox/createOrder', {
        method: 'post',
        headers: {
            'content-type': 'application/json'
        }
    }).then(function(res) {
        return res.json();
    }).then(function(data) {
        return data.orderID;
    });
},
...
...

И это то, что делает серверная сторона, когда вызывается / paypal / sandbox / createOrder '…

$request = new OrdersCreateRequest();
$request->prefer('return=representation');
$request->body = $this->buildRequestBody();

$response = $this->PayPalClient->execute($request);

Что я могу нигде не найду: Что мне делать с ответом? Я попытался повторить его просто, повторить его как JSON, но я всегда получаю такие ошибки, как «Ожидаемый идентификатор заказа»

Что мне нужно ответить на запрос клиента?

1 Ответ

0 голосов
/ 09 июля 2020

Вы определяете структуру взаимодействия между внешним интерфейсом createOrder JS и маршрутом внутреннего сервера (который, в свою очередь, вызывает API PayPal). Он может быть простым или настолько сложным, насколько вам нужно. Вы можете передавать столько параметров, сколько хотите. Вы можете использовать JSON, XML, код Морзе, RF C 1149 или что угодно для этой передачи между вашим клиентом и сервером.

Единственный требуемый бит информации - это идентификатор заказа, который ваш серверный код, в свою очередь, получает из вызова API PayPal v2 / checkout / orders (как id в ответе), и который ваша функция createOrder должна затем передать обратно вызывающему объекту после получения, что в примере кода происходит здесь:

    ...
    return data.orderID;

Одна очень простая реализация - это эхо всего ответа API v2 / checkout / orders, а не только id, и изменение приведенного выше кода на стороне клиента на return data.id, чтобы он считывал это имя ключа

...