pm_xxx - 我々は支払方法を作成したと仮定しよう。我々は顧客を作成するとき、私たちは、Javaコードを介して顧客にデフォルトの支払い方法としてこの方法をアタッシュケースことができます。
CustomerCreateParams.Builder customerCreateParamsBuilder = CustomerCreateParams.builder()
.setEmail(email)
.setPaymentMethod('pm_xxx');
Customer.create(customerCreateParamsBuilder.build());
残念ながら、更新、顧客のためのAPIに対応することはできません。そこで問題は、ストライプ内の更新、顧客のデフォルトの支払方法に好ましい方法何ですか?
EDIT:支払方法に顧客を添付:私は2つのアクションを組み合わせたように、私のユースケースは、支払いを繰り返しているので、@karllekko回答に基づいて:
paymentMethod.attach(PaymentMethodAttachParams.builder().setCustomer(customer.getId()).build());
そして、顧客の請求書の支払い方法のデフォルトを行います。
customer.update(CustomerUpdateParams.builder().setInvoiceSettings(CustomerUpdateParams.InvoiceSettings.builder().setDefaultPaymentMethod(token).build()).build());
注意することは重要なことは、PaymentMethods APIに、顧客レベルでのデフォルトのPAYMENTMETHODの概念がないということです。(0)、顧客のID保存顧客に対する一回限りの支払いを行う場合は、およびその支払いのためのPaymentIntentを作成するために、API呼び出しを行う際に選ばれたPAYMENTMETHODが提供されなければならないのを。(1)
設定payment_method
(あなたの例では、Javaコードのような)顧客を作成するときには、彼らが作成している時に顧客にPAYMENTMETHODを付ける便利な関数です。代わりにあなたがしたい、単にそれらにPAYMENTMETHOD保存、いずれかのお支払い(の一部として-顧客を更新するための同等はありませんsave_payment_method
(2):PaymentIntentを使用した場合)、または/ V1 / payment_methodsのエンドポイントを添付して使用することにより、
PaymentMethod pm = PaymentMethod.retrieve("pm_1ErMlwJoUivz182DfXf7OlWQ");
pm.attach(PaymentMethodAttachParams.builder().setCustomer(cus.getId()).build());
(0) -ストライプ課金を使用して定期的な支払いのための例外があります-ここで、あなたはどちらか設定します請求書の設定お客様の、または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