Stripe checkout с настраиваемой формой Symfony

У меня есть форма оформления заказа, которую я использую для отправки деталей корзины покупок на разные платежные шлюзы, такие как PayPal, с помощью Symfony и Payum.

Теперь я пытаюсь отправить платежные реквизиты в полосу на случай, если пользователь выберет вариант оформления заказа с полосой. На данный момент интеграция с полосой работает нормально, я могу отправить платеж и получить ответ от полосы, однако, чтобы отправить данные кредитной карты в полосу, меня перенаправляют на capture

введите описание изображения здесь

где я вижу кнопку "оплатить картой", и если я нажимаю на нее, появляется всплывающее окно для ввода данных кредитной карты

введите описание изображения здесь

Что я хотел бы сделать, так это позволить пользователю добавлять данные кредитной карты в форму оформления заказа, которая у меня есть, а не в форме, которую вы видите во всплывающем окне. Возможно ли этого добиться? Как я могу использовать свою собственную форму для отправки данных в полосу вместо использования всплывающего окна?

Я нашел близкий пример этого процесса в this и < href = "http://sandbox.payum.forma-dev.com/payment/simple_purchase/be2bill/prepare" rel = "nofollow noreferrer"> этот пример. Есть ли какой-нибудь пример полосы? Любая помощь будет оценена.


person Baig    schedule 11.02.2015    source источник


Ответы (2)


Stripe Checkout разработан таким образом. Вы видите кнопку, нажимаете ее, заполняете всю необходимую информацию и все.

Если вы хотите заполнить данные кредитной карты раньше, вы можете это сделать, но в этом случае вам придется использовать

  • Нашивка "прямая". Реализовано в Omnipay и используется через Omnipay Bridge.
  • Вы должны передавать кредитные карты omnipay следующим образом (лучший способ еще не реализован):

    $ order-> setDetails (array ('card' => new CreditCard ($ data),));

    • and use $this->forward instead of redirect. Because credit card is not saved to database you have to process them immediately. (example)
person Maksim Kotlyar    schedule 12.02.2015
comment
Спасибо, вы правы, и я реализовал полосу с помощью моста omnipay - person Baig; 12.02.2015

Это пример полосы в Javascript:

Включая Stripe.js

<script type="text/javascript" src="https://js.stripe.com/v2/"></script>

Настройка публикуемого ключа:

Stripe.setPublishableKey('YOUR_PUBLISHABLE_KEY');

отправить данные:

    Stripe.card.createToken({
      number: $('.card-number').val(),
      cvc: $('.card-cvc').val(),
      exp_month: $('.card-expiry-month').val(),
      exp_year: $('.card-expiry-year').val()
    }, stripeResponseHandler);

отклик :

function stripeResponseHandler(status, response) {
  var $form = $('#payment-form');

  if (response.error) {
    // Show the errors on the form
    $form.find('.payment-errors').text(response.error.message);
    $form.find('button').prop('disabled', false);
  } else {
    // response contains id and card, which contains additional card details
    var token = response.id;
    // Insert the token into the form so it gets submitted to the server
    $form.append($('<input type="hidden" name="stripeToken" />').val(token));
    // and submit
    $form.get(0).submit();
  }
}

для получения дополнительных сведений перейдите по этой ссылке https://stripe.com/docs/stripe.js

person Abdallah Arffak    schedule 11.02.2015
comment
спасибо, но вопрос связан с sumfony payumBundle, а не с пользовательскими php и js - person Baig; 11.02.2015