GitHub Repository
पूर्ण स्रोत कोड और सेटअप गाइड
त्वरित सेटअप
1. पूर्वापेक्षाएँ
- Supabase खाता
- एक Supabase प्रोजेक्ट बनाया गया
- डैशबोर्ड से DodoPayments API कुंजी
2. प्रमाणीकरण और लिंक करें
3. डेटाबेस सेटअप
- अपने Supabase Dashboard पर जाएँ
- SQL Editor खोलें
- एक नया क्वेरी बनाएं
schema.sqlकी संपूर्ण सामग्री कॉपी करें और पेस्ट करें- क्वेरी चलाएँ
4. प्रारंभिक रहस्यों को सेट करें
Supabase स्वचालित रूप से रनटाइम परSUPABASE_URL और SUPABASE_SERVICE_ROLE_KEY प्रदान करता है।
नोट: हम तैनाती के बाद आपके वेबहुक URL मिलने के बाद DODO_PAYMENTS_WEBHOOK_KEY सेट करेंगे।
5. तैनात करें
यह फ़ंक्शन पहले से हीfunctions/webhook/index.ts में सेट है - बस इसे तैनात करें:
6. अपना वेबहुक URL प्राप्त करें
आपका वेबहुक URL है:7. DodoPayments डैशबोर्ड में वेबहुक पंजीकृत करें
- DodoPayments Dashboard → Developer → Webhooks पर जाएँ
- एक नया वेबहुक एंडपॉइंट बनाएं
- एंडपॉइंट के रूप में अपना वेबहुक URL कॉन्फ़िगर करें
- इन सब्सक्रिप्शन इवेंट्स को सक्षम करें:
subscription.activesubscription.cancelledsubscription.renewed
- Signing Secret कॉपी करें
8. वेबहुक कुंजी सेट करें और पुनः तैनात करें
यह क्या करता है
सब्सक्रिप्शन इवेंट्स को प्रोसेस करता है और उन्हें Supabase PostgreSQL में स्टोर करता है:- subscription.active - ग्राहक और सब्सक्रिप्शन रिकॉर्ड बनाता/अपडेट करता है
- subscription.cancelled - सब्सक्रिप्शन को रद्द के रूप में चिह्नित करता है
- subscription.renewed - अगली बिलिंग तिथि को अपडेट करता है
मुख्य विशेषताएँ
✅ Signature verification - dodopayments लाइब्रेरी का उपयोग करना✅ Idempotency - वेबहुक आईडी के साथ डुप्लीकेट प्रोसेसिंग से रोकथाम
✅ Event logging -
webhook_events तालिका में पूर्ण ऑडिट ट्रेल✅ Error handling - लॉग और फिर से प्रयास योग्य
नोट: यह कार्यान्वयन तीन मुख्य सब्सक्रिप्शन इवेंट्स (subscription.active,subscription.cancelled,subscription.renewed) को न्यूनतम फ़ील्ड्स के साथ संभालने को दिखाता है। आप इसे अपनी आवश्यकताओं के अनुसार अतिरिक्त इवेंट प्रकारों और फ़ील्ड्स को सपोर्ट करने के लिए आसानी से बढ़ा सकते हैं।
कॉन्फ़िगरेशन फ़ाइलें
डेटाबेस स्कीमा
- customers - ईमेल, नाम, dodo_customer_id
- subscriptions - स्थिति, राशि, अगली_billing_date, ग्राहकों से लिंक किया गया
- webhook_events - idempotency के लिए webhook_id के साथ इवेंट लॉग
कार्यान्वयन कोड
यह कैसे काम करता है
Deno-आधारित Edge फ़ंक्शन:- सिग्नेचर की पुष्टि करता है - HMAC-SHA256 सत्यापन के लिए dodopayments लाइब्रेरी का उपयोग करता है
- Idempotency की जांच करता है - डुप्लीकेट प्रोसेसिंग रोकने के लिए वेबहुक ID को देखता है
- इवेंट को लॉग करता है - कच्चे वेबहुक डेटा को
webhook_eventsतालिका में संग्रहित करता है - अपडेट्स को प्रोसेस करता है - Supabase क्लाइंट के माध्यम से ग्राहक और सब्सक्रिप्शन बनाता या अपडेट करता है
- त्रुटियों को संभालता है - विफलताओं को लॉग करता है और इवेंट को फिर से प्रयास के लिए चिह्नित करता है
परीक्षण
स्थानीय विकास:--no-verify-jwt फ़्लैग आवश्यक है क्योंकि वेबहुक्स में JWT टोकन शामिल नहीं होते। सुरक्षा वेबहुक सिग्नेचर सत्यापन द्वारा प्रदान की जाती है।- डेवलपर्स → वेबहुक्स पर जाएं
- अपने Supabase URL के साथ एंडपॉइंट जोड़ें
- सक्षम करें: subscription.active, subscription.cancelled, subscription.renewed