コンセプト
金額は整数です
Ion のすべての金額は通貨の最小単位の整数です——USD ならセント、JPY は補助単位がないため ¥500 は
500 です(50000 ではありません)。amount: 4200 と currency: "usd" は $42.00 を意味します。
Charge(請求)
Charge は顧客から資金を移動させる1回の試みです。作成は同期的、決済は非同期です——succeeded
は承認されたことを意味し、必ずしも資金の着金完了を意味しません。
顧客と支払い方法
顧客は1つ以上の支払い方法(カード、銀行口座)を紐づけられる再利用可能なレコードです。 毎回生のカード情報を渡す代わりに顧客を事前作成することで、保存済みカードでのチェックアウトや サブスクリプションが可能になります。
冪等キー
すべての書き込みエンドポイント(charges、refunds、subscriptions)は idempotency_key を
受け付けます。リクエストがタイムアウトした後、同じキーで再試行すると、重複した Charge を作成する
代わりに元の結果が返されます。同じキーで異なるリクエストボディを使用するとエラーになります
(エラー参照)。冪等キーは注文 ID のようなビジネス上安定した値に
紐づけ、ランダムに生成しないでください。
サブスクリプション
サブスクリプションは顧客をプランに紐づけ、定期的に課金します。current_period_end を持ち、
期限到来時に自動課金を試み、失敗した場合は即座にキャンセルせず past_due に移行して督促期間を
設けます。
返金
返金は Charge を参照し、部分返金が可能です。累計額が元の金額を超えない限り、同じ Charge に対して 複数回の部分返金が可能です。