課金
トランザクショントークンを作成して顧客の決済情報を収集した後、決済を完了するために課金(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)も成功します。このようなサイトで、ランダムなテスト用カード番号を生成することができます
課金オブジェクト
Fields | |
---|---|
id | string (UUID) 課金のユニークID |
store_id | string (UUID) 課金(Charge)が行われたストアのユニークID |
transaction_token_id | string (UUID) 課金(Charge)を実行するために使用されるトークンのユニークID |
transaction_token_type | stringtransaction_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 請求名 |
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
|
created_on | string (ISO-8601) 課金が作成された日時 |
redirect.redirect_id | string (UUID) リダイレクトリクエストのユニークID |
redirect.endpoint | string (URL) 支払い完了後にリダイレクトするURL |