Stripeを使用して支払いゲートウェイを作成しています。
ローカルホストのURLを設定したいlocalhost/stripe/webhook.php
私のwebhookURLとして。ローカルホストアドレスをWebhookURLとして設定することは可能ですか?これは、Stripeでの充電が成功するたびにトリガーされるメールサービスを作成するために使用されます。
チェックアウト http://www.ultrahook.com これによりローカルホストでWebhookを受信できます
Ngrokの使用方法とStripeWebhooksURLの設定方法
この端末でngrok.exe http 80と入力してみてください。ポート80を公開するように求めます
たとえば、ローカルホストにStripe webhooks URLがある場合、次のようになります http://localhost/stripeproject/webhook.php
NgrokのURLをwebhooksサービスのエンドポイントとして指定するだけで、ほぼ完了です。
このURLを設定できます http://f253021b.ngrok.io/stripeproject/webhook.php アカウントのWebhook設定内で統合のエンドポイントにテストWebhookを送信します。
それは私にとってはうまくいっています。
詳細 ここをクリック
いいえ、これは機能しません。ストライプサーバーは、Webhookを送信するためにサーバーに接続できる必要があります。 Stripeはあなたの「localhost」に連絡する方法を知りません。これを機能させるには、Webアクセス可能なアドレスまたはIPアドレスが必要です
別のオプションがあります。 Stripe CLI を使用して、サードパーティのツールを必要とせずにローカルでWebhookをシームレスにテストできるようになりました。
この場合、 このようなもの を実行して、StripeイベントをローカルのWebhookハンドラーコードに到達させます。
stripe listen --forward-to localhost/stripe/webhook.php
Webhookをローカルホストに送信することが可能です。 「ngrok」を検索します。実行すると、パブリックインターネットアクセスへのポートが開き、ローカルホストにアクセスできるURLが提供されます。このURLを取得してWebhookアドレスとして設定し、webhook.phpファイルをポイントしてURLを完成させます。
*編集*
これはテストにのみ適しています。
Mattが言ったように、それをオンラインのどこかに置く必要があります-できればhttps://を使用してください。参考までに、2か月前にメールウェブフックの例をここに掲載しました: https://github.com/pnommensen/Stripe-Webhook-Emails 。
さらに簡単に、ローカルで実行しているときにこのエンドポイントをアプリに追加します(製品ではありません!):
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をストライプで管理する必要はありません。