gpt4 book ai didi

java - 如何在Stripe中更新客户默认的PaymentMethod?

转载 作者:行者123 更新时间:2023-12-01 10:45:53 25 4
gpt4 key购买 nike

假设我们已经创建了一种付款方式-pm_xxx。
创建客户时,我们可以通过java代码将此方法作为默认付款方式附加到客户:

CustomerCreateParams.Builder customerCreateParamsBuilder = CustomerCreateParams.builder()
.setEmail(email)
.setPaymentMethod('pm_xxx');
Customer.create(customerCreateParamsBuilder.build());

不幸的是,更新客户对应的api不可用。
因此,问题是在Stripe中更新客户默认付款方式的首选方法是什么?

编辑:
基于@karllekko的答案,因为我的用例是定期付款,所以我合并了2个操作:
将客户附加到付款方式:
paymentMethod.attach(PaymentMethodAttachParams.builder().setCustomer(customer.getId()).build());            

并将客户发票的付款方式设为默认:
customer.update(CustomerUpdateParams.builder().setInvoiceSettings(CustomerUpdateParams.InvoiceSettings.builder().setDefaultPaymentMethod(token).build()).build());

最佳答案

需要注意的重要一点是,在PaymentMethods API上,客户级别没有默认的PaymentMethod的概念。 (0)如果对已保存的客户进行一次性付款,则在进行API调用以创建该付款的PaymentIntent时,必须提供该客户的ID和所选的PaymentMethod的ID。 (1)

创建客户时设置payment_method(例如您的示例Java代码)是一种便捷功能,可在创建客户时将PaymentMethod附加到客户。没有更新客户的等效方法-而是您只需将PaymentMethod保存为他们,既可以作为付款的一部分(使用PaymentIntent时为save_payment_method),也可以使用/v1/payment_methods的附加端点: )

PaymentMethod pm = PaymentMethod.retrieve("pm_1ErMlwJoUivz182DfXf7OlWQ");
pm.attach(PaymentMethodAttachParams.builder().setCustomer(cus.getId()).build());

(0)-使用Stripe Billing进行定期付款有一个异常(exception)-在这里,您可以设置Customer的 invoice settings或特定订阅的 default_payment_method

(1)- https://stripe.com/docs/payments/payment-intents/off-session#create-payment-intent

(2)- https://stripe.com/docs/payments/payment-methods/saving

关于java - 如何在Stripe中更新客户默认的PaymentMethod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56831540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com