javascript - 使用 JavaScript 创建 Stripe Charge

标签 javascript php html stripe-payments

我下面有一段工作代码,我想知道是否可以在结账过程的“成功 token ”中进行 Stripe 收费?下面的所有代码都有效,我只是想知道在哪里插入创建实际费用的代码。

    <script src="https://checkout.stripe.com/checkout.js"></script>
    <script src="https://js.stripe.com/v3/"</script>

    <button id="payment-button" type="button" class="btn btn-success">Pay With Card</button>

    <script>
    var handler = StripeCheckout.configure({
      key: 'mykeyhere',
      image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
      locale: 'auto',
      token: function(token) {
        // You can access the token ID with `token.id`.
        // Get the token ID to your server-side code for use.
        document.getElementById("book-appointment-submit").style.display="block";
        document.getElementById("payment-button").style.display="none";
      }
    });

    document.getElementById('payment-button').addEventListener('click', function(e) {
      // Open Checkout with further options:
      handler.open({
        name: 'DenchCodeLTD',
        description: '2 widgets',
        zipCode: true,
        currency: 'gbp',
        amount: 2000
      });
      e.preventDefault();
    });

    // Close Checkout on page navigation:
    window.addEventListener('popstate', function() {
      handler.close();
    });
    </script>

<!-- End Of Stripe Payment -->

<button id="book-appointment-submit" type="button" class="btn btn-success" style="display:none">
    <span class="glyphicon glyphicon-ok"></span>
    <?php
        echo (!$manage_mode) ? $this->lang->line('confirm')
                : $this->lang->line('update');
    ?>
</button>

最佳答案

您无法在 JS 内部进行收费。使用 Stripe 向客户收费分为两个步骤。

第 1 步:您通过 Checkout 收集客户的信用卡信息,然后将其发送到 Stripe。你会得到一个 token 。这就是您在上面的代码中所做的事情。

第 2 步:您必须获取此 token 并将其传递到后端,然后告诉 Stripe 使用它进行收费,或者将其保存给客户以便稍后收费。您的服务器上需要一个脚本(PHP、Ruby 等)来处理此步骤。

第二步的一些简短示例如下:https://stripe.com/docs/charges

在你的 token: function(token) { } 里面回调至少你会想要捕获 token.id ,将其附加到 .submit()一个<form></form>围绕您的“结帐”按钮。

如果您想要更复杂的东西,您可以通过 AJAX 请求将 token ID 传递到后端,然后将收费请求的成功或失败转发回用户。

https://stripe.com/docs/checkout#integration-custom

关于javascript - 使用 JavaScript 创建 Stripe Charge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680700/

相关文章:

java - 未找到 JSF 2.2 Facelet taglib 的直通属性

jquery - 具有透明背景的代码联系表

javascript - jQuery 合并表行,但考虑以前的列

javascript - 来自 jquery 对象的窗口/文档引用

php - 用户名和通过mysql数据库登录

php - Twig 访问对象

javascript - 关闭模式窗口 JQuery?

javascript - 使用列生成器将文本包装在单列中

javascript - 在 m2e 项目中禁用 javascript facet

php - 重定向到登录页面