定期課金におけるイベント種別の変更について

2016年1月12日(火) 15:00より、定期課金時に送信されるWebhookのイベント種別が変更になります。

対象の処理は、定期課金作成、更新、再開となりますので、

  • 定期課金の作成、更新、再開時のWebhookのイベントを使った処理を行っている方

に影響が発生いたします。

なお、billing_dayやtrial_daysを用いた、支払いが即時ではない定期課金は今回の対象とはなりません。

これまでの定期課金では、定期課金(subscription)オブジェクトが作成されたあとに支払いが実行されていたのに対して、今回の変更で、支払いが実行されたあとに定期課金(subscription)オブジェクトが作成されるようになります。

今までは、定期課金が作成されたあとに非同期で支払いが実行されており、支払いの成否に関わらずに、定期課金が作成されたまま残ってしまう仕様となっていました。

例えば、支払いに失敗した場合にWebhookで送信されるイベント種別は subscription.created, charge.failed, subscription.paused というものになり、定期課金作成・支払いに失敗したにも関わらず、定期課金が作成され、subscription.pausedというイベントが送られていました。

こうした直感的ではない動作を是正するために、 支払いのトライ -> 定期課金の操作 というように支払いを先に行い、成功した場合にのみ定期課金を作成、失敗した場合は定期課金を作成しないというように変更を予定しています。

下記、詳細の挙動となります。

定期課金作成時

リクエスト:

curl https://api.pay.jp/v1/subscriptions \
-u API_KEY: \
-d plan=plan_id -d customer=customer_id

変更前

課金に成功した場合に送られるevent.type:

subscription.created
charge.succeeded
subscription.renewed

課金に失敗した場合に送られるevent.type:

subscription.created
charge.failed
subscription.paused

変更後

課金に成功した場合に送られるevent.type:

charge.succeeded
subscription.created

課金に失敗した場合に送られるevent.type:

charge.failed

定期課金のプラン変更時

リクエスト:

curl https://api.pay.jp/v1/subscriptions/subscription_id \
-u API_KEY: \
-d plan=plan_id

変更前

課金に成功した場合に送られるevent.type:

subscription.updated
charge.succeeded
subscription.renewed

課金に失敗した場合に送られるevent.type:

subscription.updated
charge.failed
subscription.paused

変更後

課金に成功した場合に送られるevent.type:

charge.succeeded
subscription.updated

課金に失敗した場合に送られるevent.type:

charge.failed

定期課金の再開時

リクエスト:

curl https://api.pay.jp/v1/subscriptions/subscription_id/resume \
-u API_KEY: \
-XPOST

変更前

課金に成功した場合に送られるevent.type:

subscription.resumed
charge.succeeded
subscription.renewed

課金に失敗した場合に送られるevent.type:

subscription.resumed
charge.failed
subscription.paused

変更後

課金に成功した場合に送られるevent.type:

charge.succeeded
subscription.resumed

課金に失敗した場合に送られるevent.type:

charge.failed

ご利用いただいている皆さまにはご迷惑をおかけいたしますが、ご了承いただけますことをお願い申し上げます。