Help us understand the problem. What is going on with this article?

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


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


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

curl -s \
    -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": "",
  "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と繰り越されます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away