Stripe::Customer.create未将付款方式附加到客户



我正在创建一个设置意图,并从中接收付款方法的id。然后我使用以下代码创建一个客户

customer = Stripe::Customer.create({
email: current_user.email,
description: "Customer for subscription",
payment_method: params[:payment_method]
})

它正在返回以下响应

{
"id": "cus_IZmhg4VhIwFUBI",
"object": "customer",
"address": null,
"balance": 0,
"created": 1608037176,
"currency": null,
"default_source": null,
"delinquent": false,
"description": "Customer for subscription",
"discount": null,
"email": "customer@example.com",
"invoice_prefix": "76BF0C5E",
"invoice_settings": {
"custom_fields": null,
"default_payment_method": null,
"footer": null
},
"livemode": false,
"metadata": {
},
"name": null,
"next_invoice_sequence": 1,
"phone": null,
"preferred_locales": [
],
"shipping": null,
"tax_exempt": "none"
}

问题是,它没有将付款方式附加到客户,当我尝试使用客户对象创建订阅时,它返回以下错误:

条纹:InvalidRequestError(该客户没有附加的付款来源或默认付款方式。(:

但当我查看仪表板时,付款方式已经与客户附在一起

payment_method已附加,您可以为客户列出它们。然后,您需要显式地为Customer设置invoice_settings.default_payment_method,这将用于创建订阅。

受@Nolan回答的启发,我在创建客户时将付款id传递给invoice_settings.default_payment_method,从而解决了这个问题。以下是代码片段:

customer = Stripe::Customer.create({
email: current_user.email,
description: "Customer for subscription",
payment_method: params[:payment_method],
invoice_settings: {
default_payment_method: params[:payment_method] 
} 
})

相关内容

最新更新