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

GitHub Repository

पूर्ण स्रोत कोड और सेटअप गाइड

त्वरित सेटअप

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

2. निर्भरताएँ स्थापित करें

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

  1. Neon पर साइन अप करें
  2. एक नया प्रोजेक्ट बनाएं
  3. SQL एडिटर खोलें
  4. schema.sql की सामग्री को कॉपी करें और चिपकाएँ
  5. क्वेरी चलाएँ
  6. Neon → Connection Details से अपना कनेक्शन स्ट्रिंग प्राप्त करें

4. प्रारंभिक पर्यावरण चर सेट करें

Vercel CLI के माध्यम से:
Note: हम DODO_PAYMENTS_WEBHOOK_KEY को तैनाती के बाद तब सेट करेंगे जब आपके पास आपका वेबहुक URL होगा।

5. तैनात करें

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

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

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

  1. DodoPayments Dashboard → Developer → Webhooks पर जाएँ
  2. एक नया वेबहुक एंडपॉइंट बनाएं
  3. अपने वेबहुक URL को एंडपॉइंट के रूप में कॉन्फ़िगर करें
  4. इन सब्सक्रिप्शन इवेंट्स को सक्षम करें:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Signing Secret को कॉपी करें

8. वेबहुक कुंजी सेट करें और पुनः तैनात करें

यह क्या करता है

सदस्यता घटनाओं को संसाधित करता है और उन्हें PostgreSQL में संग्रहीत करता है:
  • subscription.active - ग्राहक और सदस्यता रिकॉर्ड बनाता/अपडेट करता है
  • subscription.cancelled - सदस्यता को रद्द के रूप में चिह्नित करता है
  • subscription.renewed - अगली बिलिंग तिथि को अपडेट करता है

मुख्य विशेषताएँ

Signature verification - dodopayments लाइब्रेरी का उपयोग ✅ Idempotency - वेबहुक IDs के साथ डुप्लिकेट प्रोसेसिंग को रोकता है ✅ Event logging - webhook_events तालिका में पूर्ण ऑडिट ट्रेल ✅ Error handling - लॉग किया जाता है और पुनः प्रयास योग्य होता है
Note: यह इम्प्लीमेंटेशन तीन मुख्य सब्सक्रिप्शन इवेंट्स (subscription.active, subscription.cancelled, subscription.renewed) को न्यूनतम फ़ील्ड्स के साथ संभालने का प्रदर्शन करता है। आप अपनी आवश्यकताओं के अनुसार अतिरिक्त इवेंट प्रकारों और फ़ील्ड्स का समर्थन करने के लिए इसे आसानी से बढ़ा सकते हैं।

कॉन्फ़िगरेशन फ़ाइलें

डेटाबेस स्कीमा

बनाई गई तालिकाएँ:
  • customers - ईमेल, नाम, dodo_customer_id
  • subscriptions - स्थिति, राशि, अगली_billing_date, ग्राहकों से लिंक किया गया
  • webhook_events - idempotency के लिए webhook_id के साथ इवेंट लॉग

कार्यान्वयन कोड

यह कैसे काम करता है

वेबहुक हैंडलर:
  1. Disables body parsing - सिग्नेचर सत्यापन के लिए कच्ची बॉडी तक पहुंचने हेतु
  2. Verifies the signature - HMAC-SHA256 का उपयोग करके सुनिश्चित करता है कि अनुरोध DodoPayments से है
  3. Checks for duplicates - एक ही इवेंट को दो बार प्रोसेस करने से रोकने के लिए वेबहुक ID का उपयोग करता है
  4. Logs the event - ऑडिट ट्रेल के लिए कच्चे वेबहुक को webhook_events तालिका में संग्रहीत करता है
  5. Processes the event - Neon में ग्राहकों और सब्सक्रिप्शनों को बनाता या अपडेट करता है
  6. Handles errors - विफलताओं को लॉग करता है और पुनः प्रयास के लिए इवेंट को अप्रोसेस्ड के रूप में चिह्नित करता है

परीक्षण

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

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

संसाधन

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