如何将自定义字段添加到条带检出的弹出窗体

时间:2015-06-02 09:34:57

标签: javascript html stripe-payments

如何向Stripe Checkout表单添加自定义字段,例如名字,姓氏甚至是带有自定义按钮的复选框? 到目前为止,我已经想出了这个;

numbers

我发现Stripe Checkout只能包含以下自定义值,如下所示;

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

<form action="/charge" method="POST">
  <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="pk_test_i2txBI2jUjSQIMoqFz3Fo326"
    data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
    data-name="Matt's Widgets and Gizmos"
    data-description="2 widgets ($20.00)"
    data-amount="2000"
    data-billingAddress="true"
    data-shippingAddress="true">
  </script>
</form>

这有什么办法吗?请告诉我 谢谢

3 个答案:

答案 0 :(得分:11)

不幸的是,无法添加自定义字段或复选框,无法调整Stripe Checkout。这里的解决方案是使用Custom Checkout并将这些额外的字段添加到您自己的表单中。例如,您可以收集客户的姓名并要求他接受您自己的服务条款,并且只允许他们点击付款按钮。

然后,一旦客户用他们的卡片详细信息填写Checkout,Stripe会将您发送回服务器的令牌以及您在结束时收集的额外详细信息。

答案 1 :(得分:0)

Stripe现在建议使用stripe.js方法与不推荐使用的结帐模态方法(不要与新的Stripe Checkout混淆)。

为此,为了添加自定义字段(例如名称,包类型,自定义标签等),我发现可行的方法是通过添加以下内容来调整stripe.js函数stripeTokenHandler():

var customInput = document.createElement('input');
customInput.setAttribute('type', 'hidden');
customInput.setAttribute('name', 'customInput');
customInput.setAttribute('value', $("input[name=customInput]:checked").val());
form.appendChild(customInput);

因此,如果我有一个名为“ customInput”的单选按钮组,它将把选中的任何单选按钮的值附加到“ customInput” $ _ POST字段中。这样,目标脚本可以检索和使用它。

希望这对某人有帮助。

答案 2 :(得分:0)

您可以尝试将自己的文件添加为 clientReferenceId ,即。 => extrauserid :: option2 :: option2 ,但很遗憾,您没有在 payment_intent.succeeded 中找到它,与丢失的SKU一样。

clientReferenceId string

引用Checkout会话的唯一字符串。这可以是客户ID,购物车ID或类似名称。它包含在checkout.session.completed Webhook中,可用于完成购买。

var data = {
    customerEmail: eml,
    successUrl: 'https://...',
    cancelUrl: 'https://...',
    clientReferenceId: user + '::' + option1,
    items: [{  
       sku: sku, 
       quantity: 1
    }],
}
stripe.redirectToCheckout(data);

checkout.session.completed

"cancel_url": "https://....",
"client_reference_id": "user123::somevalue",
"customer": "cus_H1vFYbxY2XMAz6",