الانتقال إلى المحتوى الرئيسي

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.

المقدمة

ابقِ فريق عملك على اطلاع دائم بإشعارات المدفوعات في الوقت الفعلي على مايكروسوفت تيمز. توفر هذه التكاملات أحداث المدفوعات كبطاقات تفاعلية غنية - مثالية للبيئات المؤسسية حيث يُعتبر تيمز أداة التعاون الأساسية.
يفترض هذا الدليل أن لديك صلاحية المسؤول لإنشاء ويب هوكس في مساحة عمل Microsoft Teams الخاصة بك.

البدء

1

Open the Webhook Section

في لوحة تحكم Dodo Payments الخاصة بك، انتقل إلى Webhooks → + إضافة نقطة نهاية وقم بتوسيع قائمة الدمج المنسدلة.
إضافة نقطة نهاية وقائمة الدمج المنسدلة
2

Select Microsoft Teams

اختر بطاقة التكامل Microsoft Teams.
3

Create Teams Webhook

في Teams، انتقل إلى قناتك → ⋯ → Connectors → Incoming Webhook → Configure. انسخ عنوان URL للويب هوك.
4

Paste Webhook URL

الصق عنوان الويب هوك الخاص بـ Teams في تكوين النقطة النهائية.
5

Customize Transformation

حرّر كود التحويل لتنسيق الرسائل كبطاقات Adaptive لـ Teams.
6

Test & Create

اختبر باستخدام بيانات تجريبية ثم انقر على Create للتنشيط.
7

Done!

🎉 ستتلقى قناة Teams الآن تحديثات Dodo Payments كبطاقات Adaptive.

أمثلة على كود التحويل

بطاقة الدفع الأساسية

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;
}

نصائح

  • استخدم بطاقات تفاعلية لتنسيق غني وتفاعلي
  • اختر الألوان المناسبة: جيد (أخضر)، تحذير (أصفر)، انتباه (أحمر)
  • اجعل مجموعات الحقائق مختصرة وقابلة للقراءة
  • اختبر باستخدام أداة اختبار ويب هوك تيمز قبل النشر

استكشاف الأخطاء وإصلاحها

  • تأكد من أن عنوان الويب هوك صحيح ونشط
  • تحقق من أن التحويل يُرجع JSON صالح لبطاقات Adaptive
  • تأكد من أن للويب هوك إذن بالنشر في القناة
  • تحقق من صحة مخطط بطاقة Adaptive في أداة اختبار ويب هوك Teams
  • تأكد من وجود جميع الحقول المطلوبة
  • تأكد من أن قيم الألوان صالحة (Good, Warning, Attention, Default)
Last modified on April 20, 2026