顧客で決済する
顧客を使ってバックエンドから直接決済を行う
顧客で決済する
Payment Method (支払い方法)APIを紐づけたCustomer (顧客)APIを使用して、バックエンドから直接決済を行う方法です。 ユーザーがフロントエンドで支払い情報を入力する必要がないため、以下のようなユースケースに適しています。
- 再注文や追加注文
- バッチ処理による一括請求
決済を実行する
1. Payment Flow を作成して確定する
customer_id を指定し、confirm: true を設定することで、Payment Flow の作成と同時に決済を確定します。
payment_method_id を省略した場合、顧客の default_payment_method_id に設定されている支払い方法が自動的に使用されます。特定の支払い方法を使用したい場合は、payment_method_id を明示的に指定してください。
import { createClient, createPaymentFlow } from '@payjp/payjpv2'
const client = createClient({
apiKey: process.env.PAYJP_API_KEY!,
})
const { data: paymentFlow, error } = await createPaymentFlow({
client,
body: {
amount: 1000,
currency: 'jpy',
customer_id: 'cus_xxxxx',
confirm: true,
}
})
if (error) {
// 決済失敗(カード残高不足、有効期限切れなど)
console.error('決済に失敗しました:', error)
} else if (paymentFlow.status === 'succeeded') {
// 決済成功
console.log('決済が完了しました:', paymentFlow.id)
} else if (paymentFlow.status === 'requires_action') {
// 追加認証が必要
console.log('追加認証が必要です:', paymentFlow.next_action)
}関連リソース
- 顧客に支払い方法を登録する - 支払い方法の登録方法
- 支払い方法の管理 - 支払い方法の一覧取得・更新・削除
- Payment Flow API の仕組み - Payment Flow のライフサイクル