मुख्य सामग्री पर जाएं

GitHub Repository

पूर्ण स्रोत कोड और सेटअप गाइड
Supabase के लिए संपूर्ण स्टार्टर किट देखें
यह एक न्यूनतम सब्सक्रिप्शन स्टार्टर किट है जिसे Next.js, Supabase, और Dodo Payments के साथ बनाया गया है। यह बॉयलरप्लेट आपको प्रमाणीकरण, भुगतान, और वेबहुक्स के साथ एक सब्सक्रिप्शन-आधारित SaaS को जल्दी सेट अप करने में मदद करता है।
Dodo Payments Supabase Subscription Starter

त्वरित सेटअप

1. पूर्वापेक्षाएँ

2. प्रमाणीकरण और लिंक करें

अपने प्रोजेक्ट रेफ को Supabase डैशबोर्ड → प्रोजेक्ट सेटिंग्स से प्राप्त करें

3. डेटाबेस सेटअप

  1. अपने Supabase Dashboard पर जाएँ
  2. SQL Editor खोलें
  3. एक नया क्वेरी बनाएं
  4. schema.sql की संपूर्ण सामग्री कॉपी करें और पेस्ट करें
  5. क्वेरी चलाएँ

4. प्रारंभिक रहस्यों को सेट करें

Supabase स्वचालित रूप से रनटाइम पर SUPABASE_URL और SUPABASE_SERVICE_ROLE_KEY प्रदान करता है।
नोट: हम तैनाती के बाद आपके वेबहुक URL मिलने के बाद DODO_PAYMENTS_WEBHOOK_KEY सेट करेंगे।

5. तैनात करें

यह फ़ंक्शन पहले से ही functions/webhook/index.ts में सेट है - बस इसे तैनात करें:

6. अपना वेबहुक URL प्राप्त करें

आपका वेबहुक URL है:

7. DodoPayments डैशबोर्ड में वेबहुक पंजीकृत करें

  1. DodoPayments Dashboard → Developer → Webhooks पर जाएँ
  2. एक नया वेबहुक एंडपॉइंट बनाएं
  3. एंडपॉइंट के रूप में अपना वेबहुक URL कॉन्फ़िगर करें
  4. इन सब्सक्रिप्शन इवेंट्स को सक्षम करें:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. 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 फ़ंक्शन:
  1. सिग्नेचर की पुष्टि करता है - HMAC-SHA256 सत्यापन के लिए dodopayments लाइब्रेरी का उपयोग करता है
  2. Idempotency की जांच करता है - डुप्लीकेट प्रोसेसिंग रोकने के लिए वेबहुक ID को देखता है
  3. इवेंट को लॉग करता है - कच्चे वेबहुक डेटा को webhook_events तालिका में संग्रहित करता है
  4. अपडेट्स को प्रोसेस करता है - Supabase क्लाइंट के माध्यम से ग्राहक और सब्सक्रिप्शन बनाता या अपडेट करता है
  5. त्रुटियों को संभालता है - विफलताओं को लॉग करता है और इवेंट को फिर से प्रयास के लिए चिह्नित करता है

परीक्षण

स्थानीय विकास:
--no-verify-jwt फ़्लैग आवश्यक है क्योंकि वेबहुक्स में JWT टोकन शामिल नहीं होते। सुरक्षा वेबहुक सिग्नेचर सत्यापन द्वारा प्रदान की जाती है।
लॉग देखें:
या Supabase डैशबोर्ड → Edge Functions → वेबहुक → लॉग टैब में DodoPayments डैशबोर्ड में कॉन्फ़िगर करें:
  1. डेवलपर्स → वेबहुक्स पर जाएं
  2. अपने Supabase URL के साथ एंडपॉइंट जोड़ें
  3. सक्षम करें: subscription.active, subscription.cancelled, subscription.renewed

सामान्य समस्याएँ

संसाधन

अंतिम संशोधन 22 मई 2026