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

المقدمة

قم بإرسال رسائل البريد الإلكتروني المعاملات تلقائيًا لتأكيدات الدفع، وتحديثات الاشتراك، والإشعارات المهمة باستخدام SendGrid. قم بتحفيز رسائل البريد الإلكتروني الشخصية بناءً على أحداث الدفع مع محتوى ديناميكي وقوالب احترافية.
يتطلب هذا التكامل مفتاح API الخاص بـ SendGrid مع أذونات إرسال البريد.

البدء

1

Open the Webhook Section

في لوحة تحكم Dodo Payments، انتقل إلى Webhooks → + Add Endpoint ثم وسّع قائمة التكاملات المنسدلة.
Add Endpoint and integrations dropdown
2

Select SendGrid

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

Enter API Key

قدّم مفتاح API الخاص بـ SendGrid ضمن التكوين.
4

Configure Transformation

عدّل تعليمات التحويل لتنسيق الرسائل الإلكترونية وفقاً لواجهة SendGrid لميزة Mail Send.
5

Test & Create

اختبر باستخدام حمولات نموذجية ثم انقر Create لتفعيل إرسال البريد الإلكتروني.
6

Done!

🎉 ستؤدي أحداث الدفع الآن إلى تشغيل الرسائل الإلكترونية المعاملاتية تلقائياً عبر SendGrid.

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

رسالة تأكيد الدفع

payment_confirmation.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.sendgrid.com/v3/mail/send";
    webhook.payload = {
      personalizations: [
        {
          to: [{ email: p.customer.email }],
          dynamic_template_data: {
            customer_name: p.customer.name,
            payment_amount: (p.total_amount / 100).toFixed(2),
            payment_id: p.payment_id,
            payment_date: new Date(webhook.payload.timestamp).toLocaleDateString(),
            currency: p.currency || "USD"
          }
        }
      ],
      from: {
        email: "payments@yourdomain.com",
        name: "Your Company"
      },
      template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    };
  }
  return webhook;
}

رسالة ترحيب الاشتراك

subscription_welcome.js
function handler(webhook) {
  if (webhook.eventType === "subscription.active") {
    const s = webhook.payload.data;
    webhook.url = "https://api.sendgrid.com/v3/mail/send";
    webhook.payload = {
      personalizations: [
        {
          to: [{ email: s.customer.email }],
          dynamic_template_data: {
            customer_name: s.customer.name,
            subscription_id: s.subscription_id,
            product_name: s.product_id,
            amount: (s.recurring_pre_tax_amount / 100).toFixed(2),
            frequency: s.payment_frequency_interval,
            next_billing: new Date(s.next_billing_date).toLocaleDateString()
          }
        }
      ],
      from: {
        email: "welcome@yourdomain.com",
        name: "Your Company"
      },
      template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    };
  }
  return webhook;
}

إشعار فشل الدفع

payment_failure.js
function handler(webhook) {
  if (webhook.eventType === "payment.failed") {
    const p = webhook.payload.data;
    webhook.url = "https://api.sendgrid.com/v3/mail/send";
    webhook.payload = {
      personalizations: [
        {
          to: [{ email: p.customer.email }],
          dynamic_template_data: {
            customer_name: p.customer.name,
            payment_amount: (p.total_amount / 100).toFixed(2),
            error_message: p.error_message || "Payment processing failed",
            payment_id: p.payment_id,
            retry_link: `https://yourdomain.com/retry-payment/${p.payment_id}`
          }
        }
      ],
      from: {
        email: "support@yourdomain.com",
        name: "Your Company Support"
      },
      template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    };
  }
  return webhook;
}

نصائح

  • استخدم قوالب SendGrid الديناميكية لمحتوى مخصص
  • قم بتضمين بيانات الدفع ذات الصلة في متغيرات القالب
  • قم بتعيين عناوين من صحيحة وأسماء مرسلين
  • استخدم معرفات القالب لتنسيق البريد الإلكتروني بشكل متسق
  • قم بتضمين روابط إلغاء الاشتراك للامتثال

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

  • تأكد من أن مفتاح API يمتلك أذونات إرسال البريد
  • تحقق من أن معرفات القالب صالحة ونشطة
  • تأكد من صحة عناوين البريد الإلكتروني للمستلمين
  • راجع حدود وإحصائيات الإرسال الخاصة بـ SendGrid
  • تحقق من تطابق بنية JSON مع تنسيق واجهة SendGrid
  • تأكد من وجود كل الحقول المطلوبة
  • احرص على تنسيق متغيرات بيانات القالب بصورة صحيحة
  • تحقق من أن عناوين البريد من مرسلي الرسائل مُحققة في SendGrid