Is it possible to set localhost as a Stripe webhook URL?

懵懂的女人 提交于 2020-01-01 04:12:48

问题


I am creating a payment gateway using Stripe.

I want to set my localhost url localhost/stripe/webhook.php as my webhook url. Is it possible to set a localhost address as a webhook url? This will be used to create a mail service that is triggered on every successful charge in Stripe.


回答1:


Check out http://www.ultrahook.com which allows you to receive webhooks on localhost




回答2:


How to use ngrok and set up Stripe Webhooks url

Source Link

  1. First Download ngrok and extract it on your computer
  2. Double click ngrok.exe
  3. Try typing ngrok.exe http 80 at this terminal prompt to expose port 80

  4. For example if we you have Stripe webhooks url on localhost like so http://localhost/stripeproject/webhook.php

  5. Just specify your ngrok url as the endpoint with your webhooks service and you’re almost done.

  6. You can set up this url http://f253021b.ngrok.io/stripeproject/webhook.php to send test webhooks to your integration’s endpoint within your account’s webhooks settings.

It's working fine for me.

More details click here




回答3:


There's now another option: you can now use the Stripe CLI to seamlessly test webhooks locally without the need for a 3rd party tool.

In this case you would just do something like this to plumb your Stripe events through to your local webhook handler code:

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



回答4:


No this won't work. Stripe servers have to be able to contact your server to send the webhook. Stripe won't know how to contact your "localhost" . You need a web accessible address or IP address for this to work




回答5:


Like Matt said, you will need to put that somewhere online - preferably using https://. For your reference, I put up an example mail webhook 2 months ago here: https://github.com/pnommensen/Stripe-Webhook-Emails.




回答6:


It is possible to send the webhooks to your local host. Look up "ngrok", when you run that it opens up a port to public internet access and provides you with a url that can access your localhost from. take this url and set it as your webhook address and finish the url by pointing it at your webhook.php file.

* EDIT *

This is only appropriate for testing.




回答7:


Even simpler, add this endpoint to your app when running locally (not in prod!):

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();
});

...where processStripeEvent is whatever logic your webhook triggers.

Then there's no need to manage webhooks in stripe.



来源:https://stackoverflow.com/questions/15357356/is-it-possible-to-set-localhost-as-a-stripe-webhook-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!