我正在创建一个结帐 session 并且它工作正常,但是当客户被重定向到我们的应用程序时,他的发票没有提及在整个结帐过程中收集的地址。这对我来说毫无意义,但这就是 Stripe 的工作方式......
知道我们应该做些什么来纠正这个问题(从客户那里获取他在结账时填写的账单地址,而不是修改发票)。
这是我们创建 session 的方式:
return stripe.checkout.Session.create(
customer_email=userEmail,
billing_address_collection='required', =>>> REQUIRED !
payment_method_types=['card'],
subscription_data=subscription_data,
line_items=[{
'price': priceId,
'quantity': 1,
}],
metadata={
'vatNumber': vatNumber,
'accountId': accountData['accountId'],
},
mode='subscription',
success_url='https://xxx/home/account',
cancel_url='https://xxx/home/upgrade',
)
下面是 Webhooks 的结果:
{
"object": {
"id": "cs_test_pNl9BXBCAtTEoXmTD1Ii2e8e34DK28MyUZSBZrqHjz6ZNPvft0",
"object": "checkout.session",
"allow_promotion_codes": null,
"amount_subtotal": 19000,
"amount_total": 22990,
"billing_address_collection": "required",
"cancel_url": "https://www.xxxxx/home/upgrade",
"client_reference_id": null,
"currency": "eur",
"customer": "cus_xxxxxxhL00at",
"customer_email": "xxxxxm",
"livemode": false,
"locale": null,
"metadata": {
"accountId": "f88e5bfc-3a2a-4103-bd3e-33d3ebbe2963"
},
"mode": "subscription",
"payment_intent": null,
"payment_method_types": [
"card"
],
"payment_status": "paid",
"setup_intent": null,
"shipping": null,
"shipping_address_collection": null,
"submit_type": null,
"subscription": "sub_Hxxxx",
"success_url": "https://www.xxxx/home/account",
"total_details": {
"amount_discount": 0,
"amount_tax": 3990
}
}
}
响应中的任何地方都没有帐单地址...我很想了解创建一个收集帐单地址但不使用它的 API 背后的逻辑,或者让它很容易获得,因为我有点迷路。
最佳答案
我已联系 Stripe,账单地址仅用于欺诈检测。地址将与付款方式一起保存,因此您可以监听 customer.created
webhook 并将付款方式中的账单地址连接到您自己的客户。
关于stripe-payments - Stripe Checkout session 后如何在发票上获取客户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63728032/
相关文章:
ios - iPhone 上的 Safari 是否支持为 <input type =“file
authentication - 如何在 ReactJS 中实现登录亚马逊?
android - 如何处理 In-App Billing Library 中的多个用户? (最佳实
python - 如何一次对每一行进行不同的 tensorflow 张量切片?
tensorflow - 如何将 tf.data.Dataset 与 kedro 一起使用?
firebase - 如何在 flutter 中捕获 StorageException