Omnipay - PayPal Express и страница upSell, на которой необходимо снова пополнить счет клиента после первоначального успешного платежа.

Дорогие мои коллеги IT-разработчики...

В настоящее время я работаю для своего клиента над Laravel 5.5, и мы используем библиотеку omnipay для PHP, и это Часть PayPal omnipay-paypal. Теперь, поскольку это конкретный запрос от клиента, я использую метод PayPal-Express для перенаправления пользователей в PayPal, затем они входят в систему и оплачивают свою учетную запись PayPal или CreditCard и возвращаются на страницу моих клиентов на странице «Спасибо».

Теперь, когда клиент хочет создать страницу upSell, которая находится между страницей оформления заказа и страницей благодарности, и предлагает 1 дополнительную единицу продукта. со скидкой 50%.

Суть в том, что после первого платежа мне нужно будет каким-то образом пополнить их снова, в идеале тем, что у меня уже есть, а именно PayPal Express.

На нашей странице оформления заказа у нас есть два варианта PayPal или Checkout.com, последний предлагает сохранение свойства card_id, и после этого вы можете выполнить пополнение счета, это уже реализовано и работает как шарм с Checkout.com. Теперь вернемся к PayPal.

Я потратил изрядное количество времени, пытаясь найти такое же решение для PayPal, но безуспешно. Если есть какая-то добрая душа, которая поможет мне с этим, я был бы очень признателен, поэтому библиотека Omnipay PayPal + перезарядите клиента, если он нажмет Да на странице upSell после первоначального успешного списания/оплаты через PayPal Экспресс.

Заранее спасибо.


person Matija    schedule 13.09.2017    source источник


Ответы (1)


У этой проблемы нет простого решения, однако я могу указать вам на несколько вещей, которые вам нужно сделать:

  • Что вам нужно, так это жетон карты. Именно здесь (в Omnipay) вы вызываете такой метод, как createCard() с данными кредитной карты клиента, и возвращаете токен. Вы не можете сделать это с помощью учетной записи PayPal, вы должны получить данные кредитной карты клиента, а затем списать средства с карты.
  • Создание токенов карты не может быть выполнено шлюзом PayPal Express. Это можно сделать с помощью шлюза PayPal REST (альтернативный и более новый шлюз в том же пакете Omnipay, что и PayPal Express), что означает, что вам необходимо переключиться с PayPal Express на REST. Это так же просто, как создать новый набор ключей API. Это позволит вам вызвать createCard() с данными карты и вернуть токен карты (называемый cardReference в Omnipay), как вы это делаете с checkout.com.

Просто повторю: то, что вы пытаетесь сделать, невозможно сделать с помощью аккаунта PayPal. Вам нужны данные кредитной карты клиента.

person delatbabel    schedule 15.09.2017
comment
привет @delatbabel. Спасибо за ответ. Последние пару дней я искал это и считаю, что нам нужно будет перейти на REST с PayPal, потому что они начинают поддерживать REST Api из того, что я читал. Да, я попытаюсь, не обещаю следовать этому шаблону, если мой клиент согласится, а затем даже опубликую мой код на общедоступном GitHub, как я сделал для полоса. В любом случае буду держать вас в курсе. - person Matija; 15.09.2017