सभी लेख
पेमेंट इवेंट वेबहुक के रूप में सत्यापित सिग्नेचर के साथ लोकल इंस्पेक्टर में प्रवाहित होते हुए।
Stripewebhook debugginglocal testingpayments

Stripe वेबहुक को लोकल पर टेस्ट करें: पूरी गाइड

Stripe वेबहुक की लोकल टेस्टिंग से आप प्रोडक्शन में भेजने से पहले अपने मशीन पर ही पेमेंट इवेंट हैंडलर सत्यापित कर सकते हैं। आप ऐप को लोकल पर चलाते हैं, उसे एक सार्वजनिक HTTPS URL के ज़रिए एक्सपोज़ करते हैं, और सिग्नेचर वेरिफिकेशन पूरी तरह बरकरार रखते हुए असली Stripe टेस्ट-मोड इवेंट प्राप्त करते हैं।

Stripe वेबहुक को सार्वजनिक URL क्यों चाहिए

Stripe वेबहुक इवेंट सार्वजनिक इंटरनेट के ज़रिए एक कॉन्फ़िगर किए गए एंडपॉइंट URL पर भेजता है। 127.0.0.1:3000 जैसे पते Stripe के सर्वर से पहुँच में नहीं आते, इसलिए लोकल डेवलपमेंट को एक पुल की ज़रूरत होती है। एक localhost टनल राउटर या फ़ायरवॉल बदले बिना एक सार्वजनिक HTTPS URL को आपके लोकल प्रोसेस से मैप कर देता है।

टेस्ट से पहले आपको क्या चाहिए

  • टेस्ट मोड में एक Stripe अकाउंट।
  • वेबहुक रूट वाला एक लोकल ऐप (उदाहरण के लिए /api/webhooks/stripe)।
  • एनवायरनमेंट वेरिएबल में सेट किया गया आपका Stripe वेबहुक साइनिंग सीक्रेट।
  • एक टनल टूल जो सिग्नेचर जाँच के लिए रिक्वेस्ट हेडर सुरक्षित रखे।

चरण-दर-चरण: PortPreview के साथ Stripe वेबहुक लोकल टेस्टिंग

  1. अपने एप्लिकेशन को लक्षित पोर्ट पर लोकल चलाएँ।
  2. सार्वजनिक HTTPS URL बनाने के लिए npx portpreview 3000 चलाएँ।
  3. Stripe Dashboard में Developers → Webhooks पर जाएँ और टनल URL के साथ अपना वेबहुक पाथ जोड़ें।
  4. जिन इवेंट को टेस्ट करना है उन्हें चुनें (उदाहरण के लिए checkout.session.completed, invoice.paid)।
  5. Stripe Dashboard या CLI से टेस्ट इवेंट ट्रिगर करें और हर डिलीवरी जाँचें।
  6. पक्का करें कि आपका हैंडलर 2xx रिस्पॉन्स देता है और सिग्नेचर वैलिडेशन पास होता है।

PortPreview हेडर, बॉडी और रिस्पॉन्स स्टेटस कैप्चर करता है, ताकि आप सिर्फ़ सर्वर लॉग से अंदाज़ा लगाए बिना विफल डिलीवरी को डिबग कर सकें।

Stripe वेबहुक सिग्नेचर को लोकल पर सत्यापित करें

डेवलपमेंट के दौरान सिग्नेचर वेरिफिकेशन कभी बंद न करें। Stripe हर पेलोड को आपके वेबहुक सीक्रेट से साइन करता है, और आपके हैंडलर को Stripe-Signature हेडर ठीक उसी तरह सत्यापित करना चाहिए जैसे प्रोडक्शन में। मूल हेडर सुरक्षित रखने वाले टनल टूल आपको असली कोड पाथ टेस्ट करने देते हैं।

लोकल टेस्टिंग के दौरान आम सिग्नेचर विफलताएँ:

  • ग़लत वेबहुक सीक्रेट का इस्तेमाल (Dashboard सीक्रेट बनाम CLI सीक्रेट)।
  • वेरिफिकेशन से पहले कच्चे रिक्वेस्ट बॉडी के बजाय पार्स किया हुआ JSON बॉडी पढ़ना।
  • Stripe की सहनशीलता सीमा से अधिक घड़ी का अंतर।

लोकल पर टेस्ट करने योग्य इवेंट

Checkout और सब्सक्रिप्शन

प्रोविज़निंग, एक्सेस ग्रांट और ड्यूनिंग लॉजिक की पुष्टि के लिए checkout.session.completed, customer.subscription.created और invoice.payment_failed टेस्ट करें।

Connect और मार्केटप्लेस फ़्लो

अगर आप Stripe Connect इस्तेमाल करते हैं, तो लाइव जाने से पहले टेस्ट कनेक्टेड अकाउंट के साथ अकाउंट अपडेट इवेंट और ट्रांसफ़र नोटिफिकेशन सत्यापित करें।

आइडम्पोटेंसी और रीट्राई

Stripe विफल डिलीवरी दोबारा भेजता है। यह पुष्टि करने के लिए कि आपका हैंडलर डुप्लिकेट इवेंट सुरक्षित रूप से प्रोसेस करता है, वेबहुक रीप्ले का उपयोग करें।

Stripe CLI बनाम localhost टनल

Stripe CLI stripe listen --forward-to से इवेंट फ़ॉरवर्ड कर सकता है, जो जल्दी जाँच के लिए अच्छा है। localhost टनल एक स्थिर सार्वजनिक URL देता है जिसे आप Dashboard में पेस्ट कर सकते हैं, टीम के साथ साझा कर सकते हैं और कई प्रोवाइडर के साथ उपयोग कर सकते हैं — सिर्फ़ Stripe ही नहीं। कई टीमें दोनों का उपयोग करती हैं: तेज़ इटरेशन के लिए CLI और प्रोडक्शन कॉन्फ़िगरेशन को दर्शाने वाले इंटीग्रेशन टेस्ट के लिए टनल।

लोकल से स्टेजिंग पर कब जाएँ

लोकल टेस्टिंग हैंडलर लॉजिक, पेलोड पार्सिंग और सिग्नेचर वैलिडेशन को कवर करती है। मैनेज्ड सीक्रेट, डेटाबेस माइग्रेशन और एंड-टू-एंड रिलीज़ पाइपलाइन जैसी एनवायरनमेंट-विशिष्ट जाँचों के लिए स्टेजिंग पर जाएँ। रोज़मर्रा के पेमेंट फ़ीचर काम के लिए, लोकल Stripe वेबहुक टेस्टिंग इटरेशन समय को मिनटों से घटाकर सेकंडों में ले आती है।

वेबहुक को लोकल पर डिबग करने की हमारी पूरी गाइड पढ़ें, या वेबहुक-फ़र्स्ट टनल वर्कफ़्लो के लिए PortPreview की वेटलिस्ट में शामिल हों

अक्सर पूछे जाने वाले प्रश्न

localhost पर Stripe वेबहुक कैसे टेस्ट करें?
अपने ऐप को लोकल चलाएँ, सार्वजनिक HTTPS URL पाने के लिए PortPreview से टनल शुरू करें, फिर उस URL को Stripe Dashboard में वेबहुक एंडपॉइंट के रूप में जोड़ें। टेस्ट-मोड इवेंट ट्रिगर करें और हर डिलीवरी जाँचें।
क्या Stripe सिग्नेचर वेरिफिकेशन टनल के साथ काम करता है?
हाँ, बशर्ते आपका टनल मूल रिक्वेस्ट हेडर और बॉडी सुरक्षित रखे। PortPreview हेडर बिना बदले फ़ॉरवर्ड करता है, इसलिए Stripe-Signature वैलिडेशन प्रोडक्शन की तरह ही काम करता है।
मुझे Stripe CLI इस्तेमाल करना चाहिए या localhost टनल?
Stripe CLI अकेले डिबगिंग के लिए तेज़ है। localhost टनल Dashboard कॉन्फ़िगरेशन, टीम शेयरिंग और प्रोडक्शन को दर्शाने वाले मल्टी-प्रोवाइडर वेबहुक टेस्टिंग के लिए एक स्थिर सार्वजनिक URL देता है।