使用自定义表单 symfony 进行条纹结帐

Stripe checkout with custom form symfony

我有一个结帐表格,我用它来使用 Symfony 和 Payum.

将购物车详细信息发送到不同的支付网关,例如 paypal

现在我正在尝试将付款详细信息发送到 stripe,以防用户选择 stripe 结账选项。目前与 stripe 的集成工作正常,我可以发送付款并从 stripe 获得响应但是为了将信用卡详细信息发送到 stripe 我被重定向到 capture

我看到了 "pay with card" 按钮,如果我点击它,弹出窗口似乎会输入信用卡详细信息

我想做的是允许用户在我拥有的结帐表单上添加信用卡详细信息,而不是您在弹出窗口中看到的表单。有可能实现这一目标吗?我如何使用自己的表单将数据发送到条带而不是使用条带弹出窗口?

我在 this and this 示例中找到了该过程的一个近似示例。有条纹的例子吗?任何帮助将不胜感激。

这是条带的示例 In 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();
  }
}

有关详细信息,请查看此 link https://stripe.com/docs/stripe.js

Stripe Checkout 就是这样设计的。您看到按钮,单击它,填写所有必需的信息,就是这样。

如果您想提前填写信用卡详细信息,您可以这样做,但在那种情况下,您必须使用

  • 条纹"direct"。在 Omnipay 中实施并通过 Omnipay Bridge 使用
  • 你必须像这样通过 omnipay 信用卡 (better way is not implemented yet):

    $order->setDetails(数组( 'card' => 新信用卡($data), ));

    • 并使用 $this->forward 而不是重定向。因为信用卡没有保存到数据库中,所以您必须立即处理它们。 (example)