Edited at

Omise Schedule APIのリトライ機能について

More than 1 year has passed since last update.


Schedule API(定期課金)のリトライ機能について

OmiseのSchedule APIにはリトライ機能があります。

Omise Schedule APIのリトライ機能

上記リンクの内容をまとめると、

課金のためのスケジュールAPI(Charge Schedule API)は、リトライできます。

振込のためのスケジュールAPI(Transfer Schedule API)は、リトライできません。


課金スケジュール(Charge Schedule API)のリトライ

Charge Schedule APIのリトライは例えば以下のシナリオです。


  1. 顧客Aに対し、あなたが毎月28日に課金をするスケジュールを作成したとする。

  2. 顧客Aのカードが何らかの理由(盗難カード、残高不足など)で使えないやつだった

  3. 2.により、例えば1/28の課金が失敗する。

  4. すると、翌日の1/29日に自動的に課金がリトライされる(1回目のリトライ

  5. 4.が失敗した場合、さらに翌日の1/30日にまた課金がリトライされる(2回目のリトライ

  6. 5.が失敗した場合、スケジュールは停止される。

Screen Shot 2018-03-05 at 11.51.35.png


2/28が定期課金の日付だったらどうするのか

この場合、3/1, 3/2という風にリトライされます。


注意事項

現時点では、Omiseの Schedule APIは最大28日までしか日付を選ぶことができません。

28日より後を選ぶと、以下のようなレスポンスが返ってきます。

curl -s https://api.omise.co/schedules \

-X POST \
-u skey_test_5b3qimoominjmcm0omin: \
-d "every=1" \
-d "period=month" \
-d "on[days_of_month][]=31" \
-d "start_date=2018-03-05" \
-d "end_date=2118-02-09" \
-d "charge[customer]=cust_test_5bmoominal49amoomin2k" \
-d "charge[amount]=100" \
-d "charge[description]=Membership fee"

{
"object": "error",
"location": "https://www.omise.co/api-errors#bad-request",
"code": "bad_request",
"message": "on [days_of_month] must be an array of integer values (1 - 28)"
}


まとめ

定期課金には最大2回のリトライ機能(なので最大3回の課金トライ)が備わっています。基本、定期課金は28日までしか設定できません。また、リトライは1日間隔で行われ、2/28からのリトライは、3/1, 3/2と繰り越されます。