Webhook は、加盟店様が指定する HTTPS コールバック URL であり、Smartpay が支払いに関連するイベントを通知する際に使用します。 Webhook エンドポイントを登録すると、加盟店様のアカウントに関連するイベントが発生する度に、Smartpay からご指定の URL に通知が送られます。 Webhook を実装することにより、支払いフローの推移に応じたカスタムのバックエンドアクションを自動化することができます。
Webhook を使うメリット
- リダイレクトが失敗した場合もステータスを把握できる: Smartpay チェックアウトを正常に完了したお客様は、加盟店様がチェックアウトセッションの作成時に指定した successURL にリダイレクトされます。これにより、貴社システムの注文ステータスを更新することができます。しかし、お客様がリダイレクトの前にブラウザのウィンドウを閉じた場合やネットワークの接続が切れた場合は、リダイレクトが正常に行われない恐れがあります。その場合も Webhook を使っていれば、注文の成功が通知されるため安心です。
- データの同期: URL を Webhook エンドポイントとして登録すると、Smartpay はイベント発生時にその URL にほぼリアルタイムで通知を送ります。これにより、API リクエストを送信したサービス以外でリクエストの結果を確認したいサービスにデータを同期することができます。
Webhook の実装なしでも決済は可能ですが、Webhook の利用を強くお勧めします。注文が承認された際にリダイレクト URL が呼び出されなかったり、お客様がリダイレクト途中でブラウザを閉じてしまった場合に、決済が完了していても加盟店様側に通知されないことが稀に発生します。Webhook を使用することで、この様な問題を解消できる可能性が高くなります。
Webhook の仕組み
- 注文が承認された、支払額が振り込まれた、などの登録済みのイベントが発生すると、Smartpay はイベントオブジェクトを作成し、HTTPS POSTリクエストにより加盟店様が登録した Webhook エンドポイントにイベントを送信します。
- リクエストには、イベントデータがJSON オブジェクトとして含れます。
- 200 HTTP ステータスコードを返して、Webhook の受信を了承する必要があります。レスポンスがない、または200 以外のレスポンスが返された場合は、 Smartpay にエラーが表示され、Webhook の再試行が行われます。