> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Discord अधिकार

> जब आपके ग्राहक खरीदारी करते हैं तो उन्हें आपके Discord सर्वर में एक भूमिका दें, और उनकी सदस्यता समाप्त होने पर इसे स्वचालित रूप से हटाएं।

<Info>
  Discord अधिकार आपके सर्वर में एक भुगतान करने वाले ग्राहक को जोड़ता है (और स्वेच्छा से उन्हें एक भूमिका प्रदान करता है) जैसे ही उनकी सदस्यता सक्रिय होती है या उनकी एक बार की खरीदारी स्पष्ट हो जाती है। रद्दीकरण, रिफंड और योजना परिवर्तन भूमिका को स्वचालित रूप से रद्द कर देते हैं।
</Info>

## क्या वितरित किया जाता है

* ग्राहक अपने डिलीवरी ईमेल या ग्राहक पोर्टल में एक OAuth लिंक के माध्यम से अपने Discord खाते को जोड़ते हैं।
* एक बार वे अनुमति देने के बाद, Dodo Payments उन्हें आपके सर्वर में जोड़ देता है (या उनकी मौजूदा सदस्यता ढूंढता है) और आप द्वारा कॉन्फ़िगर की गई भूमिका असाइन करता है।
* यदि आपने कोई विशेष भूमिका नहीं चुनी है, तो केवल सर्वर सदस्यता प्रदान की जाती है।

यह एकीकरण भुगतान किए गए समुदायों, समर्थक लाभों और चरणबद्ध पहुंच चैनलों के लिए आदर्श है।

## Discord कनेक्ट करें

<Steps>
  <Step title="Open Entitlements">
    अपने Dodo Payments डैशबोर्ड में, **Entitlements** पर जाएं और एक नया अधिकार शुरू करने के लिए **+** पर क्लिक करें।
  </Step>

  <Step title="Pick Discord">
    एकीकरण के रूप में **Discord Access** चुनें। यदि आपने अभी तक अपने व्यवसाय के लिए Discord कनेक्ट नहीं किया है, तो आपको **Discord कनेक्ट करें** के लिए संकेत दिया जाएगा।

    <Frame caption="Connect Discord prompt before the OAuth handoff.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=8a34c436dd7510942db2a9221f623938" alt="Merchant को Discord जोड़ने के लिए प्रॉम्प्ट करने वाला नया अधिकार पैनल" style={{ maxHeight: '500px', width: 'auto' }} width="2844" height="1622" data-path="images/entitlements/discord/connect-prompt.png" />
    </Frame>

    क्लिक करने पर Discord एक नए टैब में खुलता है। साइन इन करें, सर्वर चुनें जिसे आप गेट करना चाहते हैं, और उस सर्वर पर बॉट की अनुमति (Manage Roles, Kick Members, Create Invite) की पुष्टि करें।

    <Frame caption="Discord OAuth: pick the server, then confirm the bot's permissions on it.">
      <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '12px', alignItems: 'center', justifyItems: 'center' }}>
        <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=b57bf306fa15aa3f49b528f803cc625e" alt="Dodo Payments बॉट को जोड़ने के लिए किस सर्वर पर Discord OAuth स्क्रीन" style={{ width: '100%', maxHeight: '420px', objectFit: 'contain' }} width="1026" height="1362" data-path="images/entitlements/discord/oauth-add-bot.png" />

        <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=438c0b04177e3a4863fb90986f5b95e0" alt="Discord बॉट अनुमति की पुष्टि स्क्रीन" style={{ width: '100%', maxHeight: '420px', objectFit: 'contain' }} width="1038" height="1472" data-path="images/entitlements/discord/oauth-permissions.png" />
      </div>
    </Frame>

    जब Discord वापस रीडायरेक्ट होता है, तो आपको पुष्टि दिखाई देगी कि सर्वर कनेक्ट हो गया है।

    <Frame caption="Server connected — return to the Dodo Payments dashboard to continue.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=bd1cbb3f9960e4eb1881d7a818dc6f16" alt="Discord Access सफलतापूर्वक कनेक्ट किया गया पुष्टिकरण पृष्ठ" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1140" data-path="images/entitlements/discord/connected.png" />
    </Frame>
  </Step>

  <Step title="Pick a server and role">
    डैशबोर्ड पर वापस, उठाए गए **server** (गिल्ड) को चुनें जिसे आपने अभी कनेक्ट किया है। वितरण पर असाइन करने के लिए स्वेच्छा से एक **role** चुनें, या इसे खाली छोड़ दें केवल सर्वर सदस्यता के लिए। अधिकार को एक **name** दें और **Create Entitlement** पर क्लिक करें।

    <Frame>
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=79e95041881d2925e58fc752280d508e" alt="नया अधिकार - Discord Access फॉर्म में कनेक्टेड सर्वर, सर्वर पिकर, भूमिका ड्रॉपडाउन, और नाम फ़ील्ड के साथ" style={{ maxHeight: '500px', width: 'auto' }} width="1196" height="1564" data-path="images/entitlements/discord/create.png" />
    </Frame>
  </Step>

  <Step title="Save the entitlement">
    अधिकार सहेजें। अब इसे किसी भी उत्पाद से जोड़ने के लिए उपलब्ध है।
  </Step>
</Steps>

## ग्राहक प्रवाह

1. ग्राहक चेकआउट पूरा करता है।
2. Dodo Payments एक `pending` स्थिति में एक अनुदान बनाता है जिसकी `oauth_url` Discord की ओर निर्देशित होती है।
3. ग्राहक एक "Join the Discord" बटन के साथ ईमेल प्राप्त करता है (OAuth लिंक)। लिंक उनके ग्राहक पोर्टल में भी दिखाई देता है।
4. ग्राहक के अनुमति देने के बाद, बॉट उन्हें सर्वर में जोड़ता है और निर्दिष्ट भूमिका असाइन करता है। अनुदान `delivered` में चला जाता है।
5. यदि सदस्यता रद्द, रुकी हुई, समाप्त होती है, या व्यापारी मैन्युअल रूप से हटा देता है, तो बॉट इस भूमिका को हटा देता है और अनुदान `revoked` में चला जाता है।

<Tip>
  सुनिश्चित करें कि Dodo Payments बॉट की भूमिका **उस** भूमिका से ऊपर है जिसे आप प्रदान कर रहे हैं। Discord बॉट्स को उनकी अपनी से उच्चतम रैंक वाली भूमिकाओं को असाइन करने से रोकता है।
</Tip>

## आवश्यक कॉन्फ़िगरेशन

| Field      | आवश्यक | विवरण                                                                        |
| ---------- | ------ | ---------------------------------------------------------------------------- |
| `guild_id` | हाँ    | Discord सर्वर आईडी। डैशबोर्ड पिकर इसे आपके लिए भर देता है।                   |
| `role_id`  | नहीं   | वितरण पर असाइन करने के लिए भूमिका। केवल सर्वर-सदस्यता पहुंच के लिए छोड़ दें। |

## API के माध्यम से बनाएँ

<CodeGroup>
  ```typescript TypeScript theme={null} theme={null}
  import DodoPayments from 'dodopayments';

  const client = new DodoPayments({
    bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
    environment: 'test_mode',
  });

  const entitlement = await client.entitlements.create({
    name: 'Patrons Discord Role',
    integration_type: 'discord',
    integration_config: {
      guild_id: '123456789012345678',
      role_id: '987654321098765432',
    },
  });
  ```

  ```python Python theme={null} theme={null}
  client.entitlements.create(
      name="Patrons Discord Role",
      integration_type="discord",
      integration_config={
          "guild_id": "123456789012345678",
          "role_id": "987654321098765432",
      },
  )
  ```

  ```go Go theme={null} theme={null}
  client.Entitlements.New(ctx, dodopayments.EntitlementNewParams{
    Name:            dodopayments.F("Patrons Discord Role"),
    IntegrationType: dodopayments.F(dodopayments.EntitlementIntegrationTypeDiscord),
    IntegrationConfig: dodopayments.F[dodopayments.IntegrationConfigUnionParam](
      dodopayments.IntegrationConfigDiscordConfigParam{
        GuildID: dodopayments.F("123456789012345678"),
        RoleID:  dodopayments.F("987654321098765432"),
      },
    ),
  })
  ```
</CodeGroup>

## वेबहुक्स

[`entitlement_grant.*` वेबहुक घटनाओं](/developer-resources/webhooks/intents/entitlement-grant) को सदस्यता लें ताकि Discord अनुदानों का ट्रैक किया जा सके:

* ग्राहक से अनुमति प्राप्त करने के लिए `entitlement_grant.created` `status: "pending"` और एक `oauth_url` के साथ अग्नि करता है।
* जैसे ही भूमिका असाइन की जाती है, `entitlement_grant.delivered` अग्नि करता है।
* जब भूमिका हटाई जाती है तो `entitlement_grant.revoked` अग्नि करता है।

## समस्या निवारण

<AccordionGroup>
  <Accordion title="Customer never sees the role assigned">
    ग्रांट `pending` में होता है जब तक ग्राहक OAuth प्रवाह को पूरा नहीं करता। अनुदान सूची की पुष्टि करें और देखें कि क्या उन्होंने OAuth लिंक पर क्लिक किया है। आवश्यकता पड़ने पर डिलीवरी ईमेल पुनः भेजें।
  </Accordion>

  <Accordion title="Grant moves to failed with permission errors">
    सुनिश्चित करें कि Dodo Payments बॉट सर्वर में बना रहता है, उसके पास `Manage Roles` अनुमति है, और इसे असाइन की जा रही भूमिका के ऊपर रखा गया है। अधिकार को फिर से सहेजने से सत्यापन पुनः चलाया जाता है।
  </Accordion>

  <Accordion title="Customer cancelled but still has the role">
    Discord रोल हटाओं को तुरंत प्रचारित करता है, लेकिन ग्राहक का स्थानीय Discord क्लाइंट कैश कर सकता है। उन्हें फिर से कनेक्ट या रिफ्रेश करना चाहिए; सर्वर-साइड स्थिति सही है।
  </Accordion>
</AccordionGroup>
