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

परिचय

अपने व्यवसाय की टीम को Microsoft Teams में वास्तविक समय के भुगतान सूचनाओं के साथ अपडेट रखें। यह एकीकरण भुगतान घटनाओं को समृद्ध Adaptive Cards के रूप में प्रदान करता है—उद्यम वातावरण के लिए आदर्श जहाँ Teams प्राथमिक सहयोग उपकरण है।
यह मार्गदर्शिका मानती है कि आपके पास अपने Microsoft Teams वर्कस्पेस में वेबहुक बनाने के लिए एडमिन एक्सेस है।

प्रारंभ करना

1

Open the Webhook Section

अपने Dodo Payments डैशबोर्ड में, Webhooks → + Add Endpoint पर जाएँ और एकीकरण ड्रॉपडाउन को विस्तार करें।
एंडपॉइंट जोड़ें और एकीकरण ड्रॉपडाउन
2

Select Microsoft Teams

Microsoft Teams एकीकरण कार्ड चुनें।
3

Create Teams Webhook

Teams में, अपने चैनल पर जाएँ → ⋯ → Connectors → Incoming Webhook → Configure. वेबहुक URL कॉपी करें।
4

Paste Webhook URL

Teams वेबहुक URL को एंडपॉइंट कॉन्फ़िगरेशन में चिपकाएँ।
5

Customize Transformation

संदेशों को Teams के लिए Adaptive Cards के रूप में स्वरूपित करने के लिए ट्रांसफ़ॉर्मेशन कोड संपादित करें।
6

Test & Create

नमूना पेलोड के साथ परीक्षण करें और सक्रिय करने के लिए Create पर क्लिक करें।
7

Done!

🎉 अब आपका Teams चैनल Dodo Payments अपडेट Adaptive Cards के रूप में प्राप्त करेगा।

रूपांतरण कोड उदाहरण

बुनियादी भुगतान कार्ड

payment_card.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.payload = {
      type: "message",
      attachments: [{
        contentType: "application/vnd.microsoft.card.adaptive",
        content: {
          type: "AdaptiveCard",
          body: [
            {
              type: "TextBlock",
              text: "✅ Payment Successful",
              weight: "Bolder",
              size: "Medium"
            },
            {
              type: "FactSet",
              facts: [
                { title: "Amount", value: `$${(p.total_amount / 100).toFixed(2)}` },
                { title: "Customer", value: p.customer.email },
                { title: "Payment ID", value: p.payment_id }
              ]
            }
          ]
        }
      }]
    };
  }
  return webhook;
}

सदस्यता प्रबंधन

subscription_card.js
function handler(webhook) {
  const s = webhook.payload.data;
  switch (webhook.eventType) {
    case "subscription.active":
      webhook.payload = {
        type: "message",
        attachments: [{
          contentType: "application/vnd.microsoft.card.adaptive",
          content: {
            type: "AdaptiveCard",
            body: [
              {
                type: "TextBlock",
                text: "📄 Subscription Activated",
                weight: "Bolder",
                color: "Good"
              },
              {
                type: "FactSet",
                facts: [
                  { title: "Customer", value: s.customer.email },
                  { title: "Product", value: s.product_id },
                  { title: "Amount", value: `$${(s.recurring_pre_tax_amount / 100).toFixed(2)}/${s.payment_frequency_interval}` },
                  { title: "Next Billing", value: new Date(s.next_billing_date).toLocaleDateString() }
                ]
              }
            ]
          }
        }]
      };
      break;
    case "subscription.cancelled":
      webhook.payload = {
        type: "message",
        attachments: [{
          contentType: "application/vnd.microsoft.card.adaptive",
          content: {
            type: "AdaptiveCard",
            body: [
              {
                type: "TextBlock",
                text: "⚠️ Subscription Cancelled",
                weight: "Bolder",
                color: "Warning"
              },
              {
                type: "FactSet",
                facts: [
                  { title: "Customer", value: s.customer.email },
                  { title: "Product", value: s.product_id },
                  { title: "Cancelled At", value: new Date(s.cancelled_at).toLocaleDateString() }
                ]
              }
            ]
          }
        }]
      };
      break;
  }
  return webhook;
}

विवाद अलर्ट

dispute_card.js
function handler(webhook) {
  if (webhook.eventType.startsWith("dispute.")) {
    const d = webhook.payload.data;
    const color = d.dispute_status === "won" ? "Good" : d.dispute_status === "lost" ? "Attention" : "Warning";
    const title = d.dispute_status === "won" ? "🏆 Dispute Won" : d.dispute_status === "lost" ? "❌ Dispute Lost" : "🚨 Dispute Update";
    
    webhook.payload = {
      type: "message",
      attachments: [{
        contentType: "application/vnd.microsoft.card.adaptive",
        content: {
          type: "AdaptiveCard",
          body: [
            {
              type: "TextBlock",
              text: title,
              weight: "Bolder",
              color: color
            },
            {
              type: "FactSet",
              facts: [
                { title: "Payment ID", value: d.payment_id },
                { title: "Amount", value: `$${(d.amount / 100).toFixed(2)}` },
                { title: "Status", value: d.dispute_status },
                { title: "Stage", value: d.dispute_stage }
              ]
            }
          ]
        }
      }]
    };
  }
  return webhook;
}

सुझाव

  • समृद्ध, इंटरैक्टिव स्वरूपण के लिए Adaptive Cards का उपयोग करें
  • उपयुक्त रंग चुनें: अच्छा (हरा), चेतावनी (पीला), ध्यान (लाल)
  • तथ्य सेट को संक्षिप्त और पठनीय रखें
  • तैनात करने से पहले Teams वेबहुक परीक्षक के साथ परीक्षण करें

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

  • सुनिश्चित करें कि वेबहुक URL सही और सक्रिय है
  • जांचें कि ट्रांसफ़ॉर्मेशन वैध Adaptive Card JSON लौटाता है
  • सुनिश्चित करें कि वेबहुक को चैनल में पोस्ट करने की अनुमति है
  • Teams वेबहुक टेस्टर में Adaptive Card स्कीमा मान्य करें
  • जांचें कि सभी आवश्यक फ़ील्ड मौजूद हैं
  • सुनिश्चित करें कि रंग मान वैध हैं (Good, Warning, Attention, Default)