PAY.JP

顧客で決済する

顧客を使ってバックエンドから直接決済を行う

顧客で決済する

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)
}

関連リソース