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

المقدمة

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

كيفية البدء

1

Open the Webhook Section

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

Select Keplars

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

Enter API Key

قدم مفتاح API الخاص بك لـ Keplars. يتم إرساله كرمز Bearer في كل طلب.
أدخل عنوان URL لـ Keplars و مفتاح API واشترك في الأحداث
4

Configure Transformation

قم بتحرير كود التحويل لتنسيق الرسائل الإلكترونية لـ Keplars. استبدل عنوان المرسل المؤقت ومعرفات القوالب الخاصة بك.
5

Test & Create

اختبر مع نماذج بيانات وانقر على إنشاء لتفعيل إرسال البريد الإلكتروني.
6

Done!

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

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

كل معالج يضبط webhook.url إلى نقطة الإرسال ذات الأولوية العالية في Keplars ويعيد كتابة webhook.payload إلى طلب Keplars (يتم إرسال مفتاح API تلقائيًا كرمز Bearer). استبدل payments@mail.yourdomain.com بمرسل مؤكد و your-keplars-*-template-id بمعرفات القوالب الخاصة بك.
to يجب أن تكون مصفوفة، حتى للمستلم الواحد. عند استخدام template_id، لا ترسل أيضًا subject أو body. القالب يوفرها.

بريد تأكيد الدفع

payment_succeeded.js
function handler(webhook) {
  if (webhook.eventType !== "payment.succeeded") return webhook;

  const data = webhook.payload.data || {};
  const paymentDate = new Date(webhook.payload.timestamp).toLocaleDateString("en-US", {
    year: "numeric", month: "long", day: "numeric",
  });

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-payment-success-template-id",
    params: {
      customer_name: data.customer?.name,
      amount: ((data.total_amount || 0) / 100).toFixed(2),
      currency: data.currency || "USD",
      payment_id: data.payment_id,
      payment_method: data.payment_method,
      payment_date: paymentDate,
    },
  };
  return webhook;
}

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

payment_failed.js
function handler(webhook) {
  if (webhook.eventType !== "payment.failed") return webhook;

  const data = webhook.payload.data || {};
  const paymentDate = new Date(webhook.payload.timestamp).toLocaleDateString("en-US", {
    year: "numeric", month: "long", day: "numeric",
  });

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-payment-failed-template-id",
    params: {
      customer_name: data.customer?.name,
      amount: ((data.total_amount || 0) / 100).toFixed(2),
      currency: data.currency || "USD",
      payment_id: data.payment_id,
      error_message: data.error_message || "Your payment could not be processed.",
      payment_date: paymentDate,
    },
  };
  return webhook;
}

بريد الترحيب بالاشتراك

subscription_active.js
function handler(webhook) {
  if (webhook.eventType !== "subscription.active") return webhook;

  const data = webhook.payload.data || {};
  const nextBilling = data.next_billing_date
    ? new Date(data.next_billing_date).toLocaleDateString("en-US", {
        year: "numeric", month: "long", day: "numeric",
      })
    : "";

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-subscription-active-template-id",
    params: {
      customer_name: data.customer?.name,
      subscription_id: data.subscription_id,
      product_id: data.product_id,
      amount: ((data.recurring_pre_tax_amount || 0) / 100).toFixed(2),
      currency: data.currency || "USD",
      billing_interval: data.payment_frequency_interval || "month",
      next_billing_date: nextBilling,
    },
  };
  return webhook;
}

بريد إلغاء الاشتراك

subscription_cancelled.js
function handler(webhook) {
  if (webhook.eventType !== "subscription.cancelled") return webhook;

  const data = webhook.payload.data || {};
  const cancellationDate = new Date(webhook.payload.timestamp).toLocaleDateString("en-US", {
    year: "numeric", month: "long", day: "numeric",
  });

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-subscription-cancelled-template-id",
    params: {
      customer_name: data.customer?.name,
      subscription_id: data.subscription_id,
      cancellation_date: cancellationDate,
    },
  };
  return webhook;
}

نصائح

  • استخدم نطاق أو عنوان مرسل مؤكد لتحسين قابلية التسليم.
  • أنشئ قالب Keplars مخصص لكل نوع حدث بحيث يبقى كل بريد إلكتروني متسقًا مع العلامة التجارية والرسالة.
  • اجعل كل بريد إلكتروني شخصيًا بإرسال بيانات العملاء مثل الاسم والمبلغ ومعرف الدفع عبر params.
  • جرب في وضع التجارب أولاً. الإرسال في وضع التجارب يتم احتجازه في صندوق الاختبارات لـ Keplars بدلاً من التسليم.

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

  • تحقق من أن مفتاح API الخاص بك صحيح ونشط في Keplars تحت الإعدادات → مفاتيح API.
  • تحقق من أن نطاق أو عنوان المرسل الخاص بك مؤكد.
  • تعرض Dodo Payments استجابة خطأ Keplars الخام في سجل تسليم الويب هوك. تحقق منه للحصول على التفاصيل.
  • يجب أن تتطابق template_id في معالجك مع قالب نشط في حساب Keplars الخاص بك. تحقق من المعرف (وأنه نشط) في لوحة التحكم.
  • كل معالج يتحقق من webhook.eventType ويعود مبكرًا إذا لم يتطابق. تأكد من أن الأحداث الصحيحة مشترك فيها على نقطة نهاية ويب هوك Dodo Payments.
آخر تعديل في ١٨ يونيو ٢٠٢٦