課題
ローカル環境にて、StripeのWebhookが発生する処理をWebhookを無効化している状態で実行してしまった。 webhookが動作してないと必要なデータが更新されない。どうすればよいか。
対応
15日間以内ならイベント詳細画面から「Webhook の試行」再送ボタンで再送ができる。
15日を超えてしまっているか、対象となるwebhookが施行一覧にない場合はCLIでコマンドを実行する必要がある
- (前提)webhookを登録・有効化して受け取れるようにしておく。CLIも使える状態であること
- 発生したはずの処理(定期支払とか)の画面から「イベントとログ」を見る。アクティビティの一覧があるので、どれかを選択して「イベントの詳細を表示」をクリック
- イベント詳細画面のURLまたは画面右上からevent_id (
evt_xxxx
のやつ)が得られる。 - Webhook一覧から対象のエンドポイントをクリック。URLからwebhook_id(we_xxxxxx)を得られる
- コンソールを開き eventのresendコマンドを実行する。
--webhook-endpoint
オプションを付けて対象のwebhookに通知されるようにする
stripe events resend evt_1IBf1YDm6Ck62QvL7XX3THT7 --webhook-endpoint=we_1HQ6sXXm6Ck62QvLBXTGoBEV
レスポンスのJSONが表示されれば成功。