我正在研究Stripe的更新。我们使用了Stripe的费用对象,但它与3DSecure不兼容,因此我迁移到了PaymentIntent API。
问题在于,当我创建一个Stripe客户时,我想按照文档https://stripe.com/docs/api/customers/create#create_customer-payment_method
中的说明附加付款方式。在控制台中,我可以执行以下操作:
customer = Stripe::Customer.create(email: user.email)
customer.payment_method = 12345
customer.payment_method
=> 12345
第一个奇怪的行为:
customer = Stripe::Customer.create(email: user.email)
customer.payment_method
=> NoMethodError (undefined method `payment_method' for #<Stripe::Customer:0x00007fd894fda560>)
customer.payment_method
引发NoMethodError而不是nil(如果没有值)。
无论如何。在控制台中,我可以创建一个Stripe客户,然后附加一个payment_method。
但是当我尝试使用此代码的服务时:
def self.update_source(customer, payment_method_id)
customer.payment_method = payment_method_id
customer.save
end
我得到一个错误:
17:42:26 server.1 | (Status 400) (Request req_4aDqavkYeg5q3m) Received unknown parameter: payment_method_id excluded from capture: Not configured to send/capture in environment 'development'
17:42:26 server.1 |
17:42:26 server.1 | Stripe::InvalidRequestError (Received unknown parameter: payment_method_id):
我不知道为什么代码可以在控制台中运行,但不能从我的服务中运行。我使用的是Stripe gem的最新版本…
有什么主意吗?