如何向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>
这有什么办法吗?请告诉我 谢谢
答案 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一样。
引用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",