目次
事前準備
以下から、Stripeのアカウントを作成してダッシュボード画面まで登録を進める。
以下の記事を参考に、カスタマーの登録が完了していること。
Node.jsでStripeのカスタマー(顧客)の登録方法 stripe.customers.create
Stripeからトークンを取得
以下のサイトにアクセスします。
https://dashboard.stripe.com/test/apikeys
テスト環境がONになっている事を確認します。
※ONになっていない方は、ONにしておいてください。

「制限付きのキーを作成」を押下します。

キーの名前に任意の名前を入力します。(何でもいいです)

「Customers」の権限を「書き込み」に変更します。

画面最下部の「キーを作成」を押下します。
「テストキーを表示」を押下して表示された「トークン」を後程利用するので、残しておいてください。

カスタマーIDの確認
以下のダッシュボードにアクセスし、顧客を選択します。
https://dashboard.stripe.com/test/customers
顧客画面の左側に記載されている「cus_」から始まるものがカスタマーIDです。
※プログラム上で使用します。

アカウントにカード情報の登録
以下の記事を参考に、カード情報を登録しておいてください。
Stripeのカスタマー(顧客)の支払い方法の設定方法(クライアント側 純粋なHTML/JavaScript jQuery)【2/2】
また、カード登録後のリダイレクト先のURLのクエリパラメータから「setup_intent」の値「seti_XXXX」を取得しておいてください。
Node.jsの関数用意
以下のコマンドを実行して、Node.jsのプロジェクトにStripeをインストールします。
npm i stripe
以下の関数を用意します。
「rk_test_XXXXXXXXXXXXXXXXXX」の部分は「Stripeからトークンを取得」で取得したトークンに置き換えてください。
「cus_XXXXXX」の部分は「カスタマーIDの確認」で取得したカスタマーIDに置き換えてください。
「seti_XXXX」の部分は「アカウントにカード情報の登録」で取得した「setup_intent」の値に置き換えてください。
var stripe = require("stripe")("rk_test_XXXXXXXXXXXXXXXXXX");
const defaultCard = async (customerId, setupIntentId) => {
const setupIntent = await stripe.setupIntents.retrieve(setupIntentId);
if (!setupIntent.payment_method) {
return response.status(204).end();
}
const paymentMethodId =
typeof setupIntent.payment_method === "string"
? setupIntent.payment_method
: setupIntent.payment_method.id;
if (paymentMethodId) {
const res = await stripe.customers.update(customerId, {
invoice_settings: {
default_payment_method: paymentMethodId,
},
});
console.log(res);
}
};
用意した関数を以下の様に実行する事で、該当のカードをデフォルトカードに設定できます。
defaultCard("cus_XXXXXX", "seti_XXXX");
カード登録情報確認
以下のサイトにて、カード登録したカスタマーを選択すると、「支払い方法」にカード情報の登録が確認できます。
https://dashboard.stripe.com/test/customers

公式ドキュメント
公式ドキュメントは以下をご参照ください。