Stripe payments Stripe无法向没有活动卡的客户收费
我不能向顾客收费。虽然这个问题在过去已经被问了十几次,但他们的错误都与我的问题不符 我在node.js中将此函数作为firebase函数调用Stripe payments Stripe无法向没有活动卡的客户收费,stripe-payments,Stripe Payments,我不能向顾客收费。虽然这个问题在过去已经被问了十几次,但他们的错误都与我的问题不符 我在node.js中将此函数作为firebase函数调用 const charge = await stripe.charges.create({ customer : customerId, amount : amount, currency : currency }); 请求后正文 { "customer": &q
const charge = await stripe.charges.create({
customer : customerId,
amount : amount,
currency : currency
});
请求后正文
{
"customer": "cus_JL4hVfDnym2SIk",
"amount": "500",
"currency": "usd"
}
我已经确认Stripe仪表板上的所有值都是正确的。此外,我将测试卡存储在客户机上,并将其明确设置为默认值,我也在仪表板上确认了这一点。我在一个非常不同的步骤中存储卡片信息,不像其他帖子一次处理所有这些
我只想向帐户上有存储卡的客户收费。一切都在测试数据、测试卡等上。这是使用收费api的问题吗?或者测试卡由于某种原因不能在这里工作
错误响应体
{
"error": {
"code": "missing",
"doc_url": "https://stripe.com/docs/error-codes/missing",
"message": "Cannot charge a customer that has no active card",
"param": "card",
"type": "card_error"
}
}
仪表板中添加的卡现在使用较新的API。您正在使用的模式取决于客户是否具有使用遗留API的
default\u源代码
可以,但我建议将集成更改为使用
如果您已经在客户身上添加了基本测试卡,则需要提供其id
,作为支付方法
:
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000,
currency: 'usd',
payment_method_types: ['card'],
payment_method: 'pm_123', // put your ID here
confirm: true,
});
虽然这将适用于4242测试卡,但推荐的方法是与Stripe.js和支持的元素集成。仪表板中添加的卡现在使用较新的API。您正在使用的模式取决于客户是否具有使用遗留API的default\u源代码
可以,但我建议将集成更改为使用
如果您已经在客户身上添加了基本测试卡,则需要提供其id
,作为支付方法
:
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000,
currency: 'usd',
payment_method_types: ['card'],
payment_method: 'pm_123', // put your ID here
confirm: true,
});
虽然这适用于4242测试卡,但推荐的方法是与Stripe.js和元素集成,以获得支持。响应良好。理想情况下,我不想存储和传递我的支付方法,因为这会在项目中产生一些边缘案例。但是,这可能是唯一的解决方案,因为我使用“paymenthMethods.attach”和“customers.update”存储了默认的_源。此外,这些教程非常棒,除了我必须将card元素转换为SwiftUI视图,而且我存储的卡和购买流处于完全不同的连接点。稍后可能会将此标记为正确,因为PaymentMethod和Sources API可能具有不同的默认付款对象,这可以解释我的问题。谢谢请注意,使用付款方式时,一次性付款没有内置的“默认”PM。有一个客户invoice\u设置。发票(和订阅)的默认\u付款方法
,但对于一次性付款,您必须始终明确提供付款方法。如果适合您的业务,您可以保存一个PM id作为默认值使用,但您需要为支付意图提供此参数。哦,这更有意义。我可能会调用“paymentMethods.retrieve”来获取订阅的默认存储卡,作为一种快捷方式。如果这不起作用,那么我将按照您最初的建议通过应用程序传递我的付款方式。谢谢你的帮助!这种快捷方式对我很有效(以防其他人感到奇怪),反应很好。理想情况下,我不想存储和传递我的支付方法,因为这会在项目中产生一些边缘案例。但是,这可能是唯一的解决方案,因为我使用“paymenthMethods.attach”和“customers.update”存储了默认的_源。此外,这些教程非常棒,除了我必须将card元素转换为SwiftUI视图,而且我存储的卡和购买流处于完全不同的连接点。稍后可能会将此标记为正确,因为PaymentMethod和Sources API可能具有不同的默认付款对象,这可以解释我的问题。谢谢请注意,使用付款方式时,一次性付款没有内置的“默认”PM。有一个客户invoice\u设置。发票(和订阅)的默认\u付款方法
,但对于一次性付款,您必须始终明确提供付款方法。如果适合您的业务,您可以保存一个PM id作为默认值使用,但您需要为支付意图提供此参数。哦,这更有意义。我可能会调用“paymentMethods.retrieve”来获取订阅的默认存储卡,作为一种快捷方式。如果这不起作用,那么我将按照您最初的建议通过应用程序传递我的付款方式。谢谢你的帮助!快捷方式对我很有效(以防其他人对此感到疑惑)