web-dev-qa-db-ja.com

localhostをStripeWebhook URLとして設定することは可能ですか?

Stripeを使用して支払いゲートウェイを作成しています。

ローカルホストのURLを設定したいlocalhost/stripe/webhook.php私のwebhookURLとして。ローカルホストアドレスをWebhookURLとして設定することは可能ですか?これは、Stripeでの充電が成功するたびにトリガーされるメールサービスを作成するために使用されます。

18
DjangoDev

チェックアウト http://www.ultrahook.com これによりローカルホストでWebhookを受信できます

25
Vinay Sahni

Ngrokの使用方法とStripeWebhooksURLの設定方法

ソースリンク

  1. 最初のダウンロード ngrok そしてそれをあなたのコンピュータに抽出します
  2. Ngrok.exeをダブルクリックします
  3. この端末でngrok.exe http 80と入力してみてください。ポート80を公開するように求めます

  4. たとえば、ローカルホストにStripe webhooks URLがある場合、次のようになります http://localhost/stripeproject/webhook.php

  5. NgrokのURLをwebhooksサービスのエンドポイントとして指定するだけで、ほぼ完了です。

  6. このURLを設定できます http://f253021b.ngrok.io/stripeproject/webhook.php アカウントのWebhook設定内で統合のエンドポイントにテストWebhookを送信します。

それは私にとってはうまくいっています。

詳細 ここをクリック

23

いいえ、これは機能しません。ストライプサーバーは、Webhookを送信するためにサーバーに接続できる必要があります。 Stripeはあなたの「localhost」に連絡する方法を知りません。これを機能させるには、Webアクセス可能なアドレスまたはIPアドレスが必要です

4
Matt

別のオプションがあります。 Stripe CLI を使用して、サードパーティのツールを必要とせずにローカルでWebhookをシームレスにテストできるようになりました。

この場合、 このようなもの を実行して、StripeイベントをローカルのWebhookハンドラーコードに到達させます。

stripe listen --forward-to localhost/stripe/webhook.php
1
floatingLomas

Webhookをローカルホストに送信することが可能です。 「ngrok」を検索します。実行すると、パブリックインターネットアクセスへのポートが開き、ローカルホストにアクセスできるURLが提供されます。このURLを取得してWebhookアドレスとして設定し、webhook.phpファイルをポイントしてURLを完成させます。

*編集*

これはテストにのみ適しています。

1
ConorJohn

Mattが言ったように、それをオンラインのどこかに置く必要があります-できればhttps://を使用してください。参考までに、2か月前にメールウェブフックの例をここに掲載しました: https://github.com/pnommensen/Stripe-Webhook-Emails

1
Patrick

さらに簡単に、ローカルで実行しているときにこのエンドポイントをアプリに追加します(製品ではありません!):

const eventsSeen = new Set();

app.post("/test/simulate-stripe-webhook", async (req, res) => {
  const events = await stripe.events.list({ limit: req.query.limit || 10 });
  for (const event of events) {
    if (eventsSeen.has(event.id)) continue;
    await processStripeEvent(event);
    eventsSeen.add(event.id);
  }
  return res.status(200).end();
});

...ここで、processStripeEventは、Webhookがトリガーするロジックです。

そうすれば、Webhookをストライプで管理する必要はありません。

0
Matt Savage