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

परिचय

अपने टीम को सूचित रखें जहाँ वे पहले से सहयोग कर रहे हैं। Discord एकीकरण भुगतान, सदस्यता, विवाद, और अन्य महत्वपूर्ण घटनाओं को सीधे किसी भी चैनल में भेजता है जिसे आप चुनते हैं—कोई पोलिंग या डैशबोर्ड की आवश्यकता नहीं।
इस गाइड में यह मान लिया गया है कि आपके पास Dodo Payments डैशबोर्ड के Integrations सेक्शन तक पहुंच है.

प्रारंभ करना

1

Open the Webhook Section

अपने Dodo Payments डैशबोर्ड में, Webhooks → + Add Endpoint खोलें और ड्रॉपडाउन को विस्तारित करें ताकि इंटीग्रेशन दिखाई दें.
एड एंडपॉइंट और इंटीग्रेशन ड्रॉपडाउन
2

Select Discord

Discord कार्ड चुनें फिर Connect your Discord workspace पर क्लिक करें.
3

Authorize the Bot

अनुरोधित अनुमतियाँ प्रदान करें ताकि बॉट आपके चुने हुए चैनल में संदेश भेज सके.
4

Edit Transformation Code

पेलोड → एम्बेड मैपिंग को अपनी जरूरतों के अनुसार अनुकूलित करें—या नीचे दिए गए टेम्पलेट्स से शुरू करें.
5

Test & Create

एम्बेड का पूर्वावलोकन करने के लिए सैंपल पेलोड का उपयोग करें, फिर Create दबाएँ.
6

Done!

🎉 अब आपका Discord चैनल लाइव Dodo Payments अपडेट प्राप्त करेगा.

परिवर्तन कोड उदाहरण

न्यूनतम भुगतान एम्बेड

payment_embed.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.payload = {
      embeds: [{
        title: "✅ Payment Successful",
        description: `**Amount:** $${(p.total_amount / 100).toFixed(2)}\n**Customer:** ${p.customer.email}`,
        color: 0x2ecc71 // green
      }]
    };
  }
  return webhook;
}

सदस्यता घटनाएँ

subscription_embed.js
function handler(webhook) {
  const s = webhook.payload.data;
  switch (webhook.eventType) {
    case "subscription.active":
      webhook.payload = {
        embeds: [{
          title: "📄 Subscription Activated",
          fields: [
            { name: "Customer", value: s.customer.email, inline: true },
            { name: "Product", value: s.product_id, inline: true },
            { name: "Next Billing", value: new Date(s.next_billing_date).toLocaleDateString(), inline: true }
          ],
          color: 0x2ecc71
        }]
      };
      break;
    case "subscription.cancelled":
      webhook.payload = {
        embeds: [{
          title: "⚠️ Subscription Cancelled",
          fields: [
            { name: "Customer", value: s.customer.email, inline: true },
            { name: "Product", value: s.product_id, inline: true }
          ],
          color: 0xf1c40f
        }]
      };
      break;
  }
  return webhook;
}

विवाद अलर्ट

dispute_embed.js
function handler(webhook) {
  if (webhook.eventType.startsWith("dispute.")) {
    const d = webhook.payload.data;
    webhook.payload = {
      embeds: [{
        title: d.dispute_status === "won" ? "🏆 Dispute Won" : d.dispute_status === "lost" ? "❌ Dispute Lost" : "🚨 Dispute Update",
        fields: [
          { name: "Payment ID", value: d.payment_id, inline: true },
          { name: "Amount", value: `$${(d.amount / 100).toFixed(2)}`, inline: true },
          { name: "Status", value: d.dispute_status, inline: true }
        ],
        color: d.dispute_status === "won" ? 0x2ecc71 : d.dispute_status === "lost" ? 0xe74c3c : 0xe67e22
      }]
    };
  }
  return webhook;
}

सुझाव

  • समृद्ध प्रारूपण और रंगों के लिए एम्बेड का उपयोग करें।
  • शीर्षकों को संक्षिप्त रखें; विवरण फ़ील्ड में डालें।
  • सहज रंगों का उपयोग करें: हरा (सफलता), लाल (विफलता), नारंगी (चेतावनियाँ)।

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

  • पुष्टि करें कि बॉट को चैनल तक पहुँच है.
  • जांचें कि ट्रांसफ़ॉर्मेशन embeds के साथ एक JSON ऑब्जेक्ट लौटाता है.
  • अपने कोड को एडिटर में मान्य करें – सिंटैक्स त्रुटियाँ डिलीवरी को रोकेंगी.
  • सुनिश्चित करें कि फील्ड नाम webhook पेलोड संरचना से मेल खाते हैं.