我有一个使用现在不支持的“ data-shipping-address =” true“”参数的条纹签出。当使用带有以下代码的简单条带检出时,此操作可以按预期工作:
<script
src="https://checkout.stripe.com/checkout.js"
class="stripe-button"
data-key="<?php echo $stripe['publishable_key']; ?>"
data-amount="1000"
data-currency="gbp"
data-allow-remember-me="true"
data-shipping-address="true"
data-billing-address="true"
data-label="Proceed to payment details"
data-image=""
data-description="TrillShirts">
</script>
但是,如果我在.js文件中调用它,则无法发布从“运输详细信息”中获取的数据。这是我的代码:
var handler = StripeCheckout.configure({
key: 'pk_test_JfqHIgPSCG2oWOsJ54PWS0Nl',
image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
locale: 'auto',
billingAddress: 'true',
shippingAddress: 'true',
token: function(token) {
console.log(token.id);
console.log(token.email);
// here I try to find the shippingAddress using cosole.log
console.log(token.shippingAddressLine1);
console.log(token.stripeShippingAddressLine1);
// When I eventually have the shipping address, I will insert it in the same way as below
$(".stripeToken").val(token.id);
$(".stripeEmail").val(token.email);
$(".stripe").submit();
}
});
document.getElementById('pay').addEventListener('click', function(e) {
// Open Checkout with further options:
handler.open({
name: 'TrillShirts',
description: 'Childcatcher Tee',
currency: 'gbp',
amount: 2000
});
});
});
以下两个均在控制台中返回undefined,因此我无法弄清楚“运送详细信息”所使用的格式。
console.log(token.shippingAddressLine1);
console.log(token.stripeShippingAddressLine1);
一旦我知道了格式并拥有成功的控制台日志,就可以使用jQuery在提交之前将数据插入表单中。
有人可以帮忙吗?
答案 0 :(得分:1)
使用自定义结帐功能,启用shippingAddress
时,运送详细信息将作为函数的 second 参数传递到您的token
回调函数。这是args
回调参考in this doc中显示的token
参数。
因此,在您的情况下,您需要将令牌回调函数的签名从function(token) {...}
修改为function(token, args) {...}
,然后才能从args
获取信息。
这里是一个示例:https://jsfiddle.net/rghpes57/3/
在此示例中,第二个console.log
是您要查看的对象,以查看其外观。