在使用良好的用户体验和不同的身份验证提供商创建订阅时,如何设置国家/地区?

问题描述 投票:0回答:1

我希望通过注册(电子邮件/密码)或谷歌身份验证的用户能够使用信用卡/iban借记卡等创建订阅。我面临的问题是获取一次国家/地区信息(显然不想通过多次输入来惹恼用户)并在设置订阅之前将其交给 stripe。

原因是stripe在创建订阅时需要将国家/地区分配给用户来计算税收和其他内容,否则会失败。

在其设置订阅设置意图/付款方式的元素表单中,条纹有一个国家/地区输入元素,但出于安全原因我无法直接访问输入。然后,在处理 setupintent 并在 stripe 后端创建支付方式时,输入将被发送到 stripe。但是我不确定创建订阅时付款方式是否已完全创建并且信息是否可用。

所以我看到了 3 个选择

  1. 以某种方式从 stripe 元素获取国家/地区信息 - 虽然似乎没有 api - 对我来说这对于安全目的来说是有意义的。

  2. 让用户输入国家/地区两次 - 一次在注册时,一次在输入付款详细信息时。这会特别烦人 当使用 Google Auth 作为 AuthProvider 时,因为用户不会期望 需要填写另一份表格

  3. 使用已完成的设置意图事件或requires_action从设置意图中获取国家/地区信息。然而这些事件并不 保证在重定向到我所在的 succesUrl 之前被调用 创建订阅。或者我可以触发订阅 当这些事件发生时创建 - 但是随后可能会发生重定向 用户希望订阅但没有订阅

总而言之,似乎没有什么好的选择 - 或者我错过了什么?

干杯 汤姆

stripe-payments stripe-tax
1个回答
0
投票

一种选择是创建 Stripe 客户并设置其地址(使用您从注册中收集的信息)

curl https://api.stripe.com/v1/customers \
  -u "sk_test_51LFx4JF1SIVBSMvIt9b4wQdU6HaIJihHN3trk4Gsatf6s4HhFq8hUnzNXfabz4e3G7DohAQQr1saKyb823PPBGck00zimBeeF9:" \
  -d description="a new user" \
  --data-urlencode email="[email protected]" \
  -d payment_method=pm_1FU2bgBF6ERF9jhEQvwnA7sX \
  -d "address[country]"=US \
  -d "address[postal_code]"=94103 \
  -d "expand[]"=tax

https://stripe.com/docs/billing/taxes/collect-taxes?tax-calculation=stripe-tax#create-a-customer

© www.soinside.com 2019 - 2024. All rights reserved.