लाइसेंस कुंजियाँ, डाउनलोड योग्य फ़ाइलें, और ग्राहकों के भुगतान करने पर Discord, GitHub, Telegram, Framer, और Notion जैसे प्लेटफार्मों तक पहुंच अपने आप वितरित करें।
Entitlements सफल भुगतान या सक्रिय सब्सक्रिप्शन को वास्तविक पहुंच में बदल देते हैं: आपके ग्राहक के इनबॉक्स में एक लाइसेंस कुंजी, एक Discord भूमिका, एक GitHub रिपॉजिटरी, एक Notion टेम्पलेट, एक Framer रिमिक्स लिंक, एक Telegram चैट इनवाइट, या एक डाउनलोड करने योग्य फ़ाइल बंडल। भुगतान जीवनचक्र में बदलाव के साथ Dodo Payments स्वचालित रूप से उस पहुंच को जारी करता है, ट्रैक करता है, और वापस ले लेता है।
The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.
एक entitlement वह पुनः उपयोग योग्य परिभाषा है जिसे आप ग्राहक को वितरित करते हैं: एक प्रो लाइसेंस कुंजी, एक “Patrons” Discord भूमिका, आपके निजी GitHub रिपॉजिटरी का एक्सेस, डाउनलोड करने योग्य e-book बंडल। आप Entitlements को उत्पादों से संलग्न करते हैं, और Dodo Payments बाकी काम संभालता है।जब कोई ग्राहक उत्पाद खरीदता है, तो Dodo Payments एक grant बनाता है, जो कि उस entitlement की ग्राहक की एकल जारीगी होती है। ग्रांट्स कुछ स्थिति के सेट के माध्यम से चलते हैं: pending जब डिलीवरी प्रगति पर होती है, delivered एक बार जब ग्राहक को पहुंच प्राप्त हो जाती है, failed यदि डिलीवरी पूरी नहीं हो सकी, और revoked जब पहुंच वापस ले ली जाती है।
Entitlements fulfillment को गेट करते हैं (क्या ग्राहक को पहुंच है?)। क्रेडिट consumption को गेट करते हैं (वे कितनी मात्रा में इसका उपयोग कर सकते हैं?)। दोनों को एक ही उत्पाद से जोड़ा जा सकता है। क्रेडिट्स के लिए Credit-Based Billing देखें।
ग्रांट्स उन्हीं भुगतान और सब्सक्रिप्शन घटनाओं द्वारा संचालित होते हैं जिन्हें आप पहले ही वेबहुक्स के रूप में प्राप्त कर चुके हैं। आपको खुद खरीद के लिए ग्रांट API कॉल करने की जरूरत नहीं है। Dodo Payments भुगतान जीवनचक्र के आधार पर स्वचालित रूप से ग्रांट्स बनाता और रद्द करता है।
एक ग्रांट तब बनाया जाता है जब भुगतान पूरा होता है या सब्सक्रिप्शन सक्रिय हो जाता है। लाइसेंस कुंजियाँ सीधे delivered पर जाती हैं। हर अन्य इंटीग्रेशन pending में शुरू होता है। OAuth-आधारित इंटीग्रेशन (Discord, GitHub, Notion) एक oauth_url शामिल करते हैं जिसे ग्राहक को सहमति पूरी करने के लिए जाना पड़ता है। प्लेटफॉर्म-सीधे इंटीग्रेशन (Telegram, Framer, Digital Files) थोड़े समय के लिए pending में रहते हैं जबकि डिलीवरी प्रदान की जाती है, फिर delivered में ट्रांजिशन करते हैं।
2
Delivered
एक बार जब डिलीवरी पूरी हो जाती है (लाइसेंस कुंजी उत्पन्न होती है, भूमिका असाइन की जाती है, रिपॉजिटरी एक्सेस प्रदान किया जाता है, फ़ाइल लिंक हल किए जाते हैं, OAuth पूरा होता है), तो ग्रांट delivered में चला जाता है और delivered_at सेट होता है।
3
Failed
यदि इंटीग्रेशन कॉल एक गैर-पुनः प्रयास योग्य त्रुटि लौटाता है (रद्द Oauth टोकन, डिनाइड परमिशन, फ़ाइल अब मौजूद नहीं है), तो ग्रांट failed पर चला जाता है। error_code और error_message फ़ील्ड्स कारण को कैप्चर करते हैं।
4
Revoked
जब पहुंच को वापस ले लिया जाता है (सब्सक्रिप्शन रद्द कर दिया गया, रिफंड जारी किया गया, या मर्चेंट द्वारा शुरू किया गया रद्द), तो ग्रांट revoked पर चला जाता है। revocation_reason फ़ील्ड ट्रिगर को रिकॉर्ड करता है।
संलग्न प्रत्येक entitlement के लिए एक ग्रांट जारी करें।
payment.succeeded (सब्सक्रिप्शन-लिंक्ड भुगतान)
नो-ऑप। ग्रांट्स नीचे दिए गए सब्सक्रिप्शन इवेंट द्वारा संचालित होते हैं।
subscription.active
उन किसी भी संलग्न Entitlements के लिए ग्रांट्स जारी करें जिनके पास पहले से एक नहीं है। अगर वही सब्सक्रिप्शन के लिए पहले रद्द ग्रांट्स हों तो उन्हें फिर से अनुदान दें।
subscription.renewed
नो-ऑप। मौजूदा ग्रांट्स नवीनीकरण के दौरान बरकरार रहते हैं।
subscription.on_hold
सभी वितरित और लंबित ग्रांट्स को रद्द करें। revocation_reason: subscription_on_hold।
subscription.cancelled
सभी रद्द करें। revocation_reason: subscription_cancelled।
subscription.expired
सभी रद्द करें। revocation_reason: subscription_expired।
subscription.plan_changed
वर्तमान ग्रांट्स को रद्द करें, फिर नए योजना की Entitlements के लिए ग्रांट्स जारी करें। revocation_reason: plan_changed।
refund.succeeded (वन-टाइम भुगतान)
उस भुगतान के लिए ग्रांट्स को रद्द करें। revocation_reason: refund।
मैनुअल API रद्द करें
revocation_reason: manual के साथ रद्द करें। मै
नुअल रद्दियां सब्सक्रिप्शन नवीनीकरण पर स्वत: पुन:अनुदानित नहीं होती हैं। |
| लाइसेंस कुंजी अक्षम है | लाइसेंस-कुंजी ग्रांट्स के लिए, अक्षम कुंजी ग्रांट को revocation_reason: license_key_disabled के साथ रद्द करता है। अगर कुंजी को पुनः सक्षम किया जाता है तो ग्रांट स्वत: पुनः सक्रिय हो जाता है। |
| प्लेटफ़ॉर्म बहाव का पता चला | अगर किसी इंटीग्रेशन का प्लेटफॉर्म हिस्सा सिंक से बाहर हो जाता है (एक Discord भूमिका को मैन्युअली हटा दिया गया, GitHub ऐप ने रिपॉजिटरी एक्सेस खो दी, या एक समन्वयन पास एक गायब लक्ष्य का पता लगाता है), तो ग्रांट को revocation_reason: platform_external के साथ रद्द किया जाता है। प्लेटफार्म मुद्दे के हल होने तक सब्सक्रिप्शन नवीनीकरण पर स्वतः पुन:अनुदानित नहीं होता। |
सब्सक्रिप्शन-द्वारा संचालित ग्रांट्स (entitlement, customer, subscription) पर नामांकन होते हैं; नवीनीकरण और पुनःसक्रियण डुप्लिकेट ग्रांट्स नहीं बनाते। वन-टाइम ग्रांट्स (entitlement, customer, payment) पर नामांकन होते हैं।
अपने Dodo Payments डैशबोर्ड में Entitlements पर जाएं और एक नया entitlement बनाने के लिए + पर क्लिक करें।
2
Pick an integration
इंटीग्रेशन प्रकार चुनें: लाइसेंस कुंजी, डिजिटल फ़ाइलें, Discord, GitHub, Telegram, Framer, या Notion। प्लेटफार्म इंटीग्रेशन के लिए, पहले अपना खाता कनेक्ट करें अगर आपने पहले से नहीं किया है।
3
Configure delivery
इंटीग्रेशन-विशिष्ट फ़ील्ड भरें। उदाहरण के लिए, GitHub एक रिपॉजिटरी और एक अनुमति स्तर पूछता है; Discord एक सर्वर और एक वैकल्पिक भूमिका पूछता है; लाइसेंस कुंजी सक्रियता सीमा और समाप्ति पूछती है।
Creating a GitHub entitlement. Each integration shows the fields it needs.
4
Save
Entitlement को सेव करें। अब आप इसे किसी भी उत्पाद से संलग्न कर सकते हैं।
किसी उत्पाद को खोलें, Advanced Settings → Entitlements & Credits को बढ़ाएं, और उन entitlements का चयन करें जिन्हें उत्पाद खरीदने पर वितरित किया जाना चाहिए। एकल उत्पाद एक बार में कई entitlements वितरित कर सकता है। उदाहरण के लिए, एक प्रो योजना में लाइसेंस कुंजी, GitHub एक्सेस, और एक Discord भूमिका शामिल हो सकती है।
Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.
ग्राहकों को खरीदारी के बाद एक वितरण ईमेल प्राप्त होता है जिसमें लाइसेंस कुंजी, डाउनलोड लिंक, OAuth निमंत्रण लिंक, या प्लेटफार्म निमंत्रण शामिल होते हैं, जो भी उत्पाद पर लागू होता है entitlements के लिए। वही विवरण अनंत समय तक Customer Portal से उनके ऑर्डर इतिहास के तहत उपलब्ध रहते हैं।
Discord, GitHub, और Notion सब्सक्राइबर एक्सेस ग्राहकों को Dodo Payments को उन्हें एक्सेस देने के लिए प्रमाणीकरण करना पड़ता है। ये Entitlements तब तक pending स्थिति में रहते हैं जब तक ग्राहक ईमेल या ग्राहक पोर्टल के लिंक का उपयोग करके OAuth फ्लो को पूरा नहीं करते हैं। एक बार जब वे प्रमाणीकरण कर लेते हैं, ग्रांट delivered की ओर चला जाता है और प्लेटफार्म एक्सेस तुरंत प्रदान किया जाता है।
रद्द किए गए ग्रांट्स प्लेटफ़ॉर्म स्तर पर हटा दिए जाते हैं: Discord भूमिका हटा दी जाती है, GitHub सहयोगकर्ता हटा दिया जाता है, लाइसेंस कुंजी अक्षम कर दी जाती है। ग्राहकों को ग्राहक पोर्टल में यह परिवर्तन प्रतिबिंबित होता हुआ दिखाई देता है।
डिजिटल फ़ाइलों के लिए, रद्दीकरण अग्रिम रूप से प्रीसाइनिंग URLs तक पहुंच हटा देता है, लेकिन पहले से डाउनलोड किए गए कॉपी को अमान्य नहीं करता। प्लान सामग्री को उसी अनुसार गेट करें।
किसी भी Entitlement को डैशबोर्ड से खोलें ताकि उसके ग्रांट्स देख सकें। ग्रांट विवरण पैनल में कुल ग्रांट्स, स्थिति फिल्टर, ग्राहक जानकारी, वितरण तिथियाँ, और एक रद्द कार्रवाई दिखाई जाती है।आप ग्रांट्स को प्रोग्रामेटिकली भी प्रबंधित कर सकते हैं:
import DodoPayments from 'dodopayments';const client = new DodoPayments({ bearerToken: process.env['DODO_PAYMENTS_API_KEY'],});// List grants for an entitlementconst grants = await client.entitlements.grants.list('ent_abc123', { status: 'delivered',});// Revoke a single grantawait client.entitlements.grants.revoke('grant_xyz789', { path_id: 'ent_abc123',});
Dodo Payments चार webhook घटनाएं ग्रांट जीवनचक्र के लिए भेजता है। इन घटनाओं की सदस्यता लें ताकि आपकी एप्लिकेशन प्रत्येक ग्राहक के एक्सेस के साथ सिंक में रहे।
इवेंट
फायर होता है जब
entitlement_grant.created
एक नया grant बनाया जाता है। लाइसेंस-कुंजी ग्रांट्स delivered पर आते हैं; सभी अन्य इंटीग्रेशन pending पर आते हैं और delivered पर परिवर्तित होते हैं जब प्लेटफॉर्म कॉल सफल होता है (या, OAuth-आधारित इंटीग्रेशन के लिए, जब ग्राहक प्रमाणीकरण करते हैं)।
entitlement_grant.delivered
ग्रांट डिलीवर पर परिवर्तित होता है। ग्राहक को अब एक्सेस मिलता है।
entitlement_grant.failed
ग्रांट डिलीवर नहीं हो सका। error_code और error_message देखें।
entitlement_grant.revoked
एक्सेस वापस ले लिया गया है। revocation_reason देखें।
Entitlement Grant Webhook Payloads
पूर्ण पेलोड स्कीमा, नमूना घटनाएं, और revocation_reason संदर्भ देखें।