課金 – 概要
トランザクショントークンを作成して消費者の決済情報を収集した後、決済を完了するために課金(Charge)を作成します。
課金(Charge)は、非同期処理されるので、作成時には、pending
状態になっています。
決済処理の完了後、ステータスは、結果に応じてsuccessful
, failed
, error
に変更されます。
※海外カード会社に接続している場合は作成時authorized
状態になります。
ウェブフックのCHARGE_FINISHED
イベントを登録することで課金(Charge)の最終的な状態を得ることができます。
ロングポーリングを行って課金の状態を取得することもできますが、最終的な状態を返すことは保証できません。
オーソリ
オーソリ(Authorization)は、支払い方法がクレジットカードの時に利用でき、そのクレジットカードが実際に利用可能かどうかを確認し、与信枠の確保を行います。この状態だと実際の売り上げにはなりません。
その後、キャプチャを行うことで決済を確定します。
オーソリを行うには、課金の作成時に capture
パラメータを false
に指定して課金を作成します。
この際に、 capture_at
パラメータで自動的にキャプチャを行う日時を指定することもできます。
ステータス
pending
:課金が作成された時の状態authorized
:カード会社により承認された状態failed
:オーソリは有効期限切れや与信枠の不足など、様々な理由により失敗した状態error
:タイムアウト、通信エラー、入力形式違反、接続先からのレスポンスが無いなど、様々な理由により失敗した状態
キャプチャを行うには、authorized
状態の課金に対してキャプチャのリクエストを送信します。
詳細は課金のキャプチャの作成を参照してください。
キャプチャを行わない場合は、キャンセルして与信枠を解放する必要があります。
テストカード
テストモードのアプリケーショントークンで課金(Charge)を行う場合には、成功または失敗を意図的に発生させるための特別なテスト用のカード番号があります。
4000020000000000
:課金(Charge)、返金(Refund)ともに成功1111
で終わるカード番号(4111111111111111
など):課金(Charge)失敗4242
で終わるカード番号(4242424242424242
など):課金(Charge)は成功、返金(Refund)が失敗1881
で終わるカード番号(4012888888881881
など):課金(Charge)は成功、取り消し(Cancel)が失敗
その他の番号もカード発行ロジックに沿ったものであれば課金(Charge)も返金(Refund)も成功します。
このようなサイトで、ランダムなテスト用カード番号を生成することができます
“charge” オブジェクトのデータ構造
フィールド名 | データ型 | 備考 |
---|---|---|
id | string (UUID) | 課金のユニークID |
store_id | string (UUID) | 課金(Charge)が行われたストアのユニークID |
transaction_token_id | string (UUID) | 課金(Charge)を実行するために使用されるトークンのユニークID |
transaction_token_type | string | transaction_token_id のトランザクショントークンの種別 |
subscription_id | string (UUID) | この課金(Charge)が作成された定期課金(Subscription)のユニークID 定期課金(Subscription)がなければnull |
merchant_transaction_id | string | 課金を作成した支払先の決済事業者に送る取引ID Wechat,Wechat Online,Wechat MPMで有効 |
requested_amount | number | リクエストされた課金金額 |
requested_currency | string (ISO-4217) | リクエストされた課金通貨 |
requested_amount_formatted | string | 補助単位があればその小数の値を含む課金のリクエスト金額 |
charged_amount | number | 課金(Charge)された金額 リクエストされた金額とは異なる場合あり 通貨の変換について |
charged_currency | string (ISO-4217) | 課金(Charge)された通貨 リクエストされた通貨とは異なる場合があり 通貨の変換について |
charged_amount_formatted | string | 補助単位があれば小数の値を含む課金された金額 |
only_direct_currency | boolean | リクエストされた通貨をサポートするゲートウェイのみを使用すべきかどうか |
capture_at | string (ISO-8601) | 自動的にキャプチャされる日時 |
descriptor | string | 請求名 |
descriptor_phone_number | ※現在使用されていないパラメータ | |
status | string | 課金ステータスpending , awaiting , successful , failed , error , authorized , canceled のいずれか※ error は異常な状態を表しサポートチームが課金のレビューを行った後に、ステータスが変更される可能性あり |
error.code | string | 課金が失敗またはエラーになった理由を表すエラーコード |
error.message | string | 課金が失敗した理由 |
error.detail | string | 課金が失敗した詳細理由 |
metadata | json | 課金(Charge)に紐づいているメタデータ 定期課金(Subscription)で作成されたメタデータはそれに関連する課金に引き継がれる |
mode | string | liveまたはtest |
created_on | string (ISO-8601) | 課金が作成された日時 |
redirect.redirect_id | string (UUID) | リダイレクトリクエストのユニークID |
redirect.endpoint | string (URL) | 支払い完了後にリダイレクトするURL |
transaction_id | number | GMOあおぞらネット銀行から発行される取引ID |
bank_ledger_type | string | deposit またはpayment ※ deposit は入金、payment は入金に従って決済システム側で支払い処理を行うことをそれぞれ指す |
balance | number | 合計入金金額 |
virtual_bank_account_holder_name | string | 振込先口座名義 |
virtual_bank_account_number | number | 振込先口座番号 |
virtual_account_id | number | GMOあおぞらネット銀行から発行される口座ID |
transaction_date | string | 処理日 |
transaction_timestamp | string | 処理日時 |