如何通过客户 ID 使用 Stripe 收费
Posted
技术标签:
【中文标题】如何通过客户 ID 使用 Stripe 收费【英文标题】:How to charge with Stripe by customer id 【发布时间】:2021-12-30 05:18:41 【问题描述】:当可以通过卡详细信息向用户收费时,我有流程,为此我正在使用 await stripe.createPaymentMethod。付款成功后,我稍后可以通过卡和付款信息以及客户 ID“cus__idvalue”获取该用户购买的详细信息。
const error, paymentMethod = await stripe.createPaymentMethod(
type: "card",
card: elements.getElement(CardNumberElement),
card: elements.getElement(CardExpiryElement),
card: elements.getElement(CardCvcElement),
);
我的问题是如何通过以前使用的卡向同一用户收费,而不让他选择再次输入他的卡数据。我已经阅读了有关该案例的 Stripe 文档,但还没有清楚地了解哪些方法可能会有所帮助。提前感谢任何帮助!
【问题讨论】:
【参考方案1】:您可以做的功能受到条带 API 提供的功能的限制,我怀疑 API 是否允许根据以前的交易预先输入卡详细信息,除非您将卡详细信息存储在您的站点数据库中,这是一种安全性缺陷。
一些卡处理商可以允许这样做,所以如果允许,请从条带确认,在这种情况下,您可以允许用户将卡详细信息存储在您网站上的用户帐户中,因此只有当用户登录时预存的卡详细信息可用于交易。
【讨论】:
【参考方案2】:PaymentMethods 仅在附加到客户时才能重复使用。要检索给定客户的所有 PaymentMethods,您可以使用带有客户 ID 参数的 listPaymentMethods
端点,然后使用 PaymentMethod ID 创建一个新的 PaymentIntent,如下所示:
const paymentIntent = await stripe.paymentIntents.create(
amount: 2000,
currency: "usd",
payment_method: “REPLACE_WITH_PAYMENT_METHOD_ID”,
confirm: true,
);
【讨论】:
以上是关于如何通过客户 ID 使用 Stripe 收费的主要内容,如果未能解决你的问题,请参考以下文章