المقدمة
يرسل تكامل SendGrid رسالة بريد إلكتروني للمعاملات عبر SendGrid’s Mail Send API عند حدوث حدث في Dodo Payments. تستخدم كل رسالة أحد قوالب SendGrid الديناميكية، مع تعبئته بالبيانات الواردة من الحدث، بحيث يمكنك تأكيد الدفعات، والترحيب بالمشتركين الجدد، والمتابعة بشأن الدفعات الفاشلة.يتطلب هذا التكامل مفتاح SendGrid API يتضمن إذن Mail Send، ومرسلًا تم التحقق منه في SendGrid، وقالبًا ديناميكيًا لكل رسالة بريد إلكتروني ترسلها. تحتاج أيضًا إلى الوصول إلى Developer → Webhooks في لوحة تحكم Dodo Payments.
البدء
1
Open the Webhook Section
في لوحة تحكم Dodo Payments، انتقل إلى Developer → Webhooks وانقر على Add endpoint.

2
Select SendGrid
في Integration، اختر SendGrid. تملأ لوحة التحكم Endpoint URL ورمز التحويل الخاص بـ SendGrid، ويعرض قسم How to connect SendGrid خطوات الإعداد.
3
Enter API Key
في SendGrid، انتقل إلى Settings → API Keys وانقر على Create API Key. اختر Restricted Access مع إذن Mail Send، أو Full Access. يعرض SendGrid المفتاح، الذي يبدأ بـ
SG.، مرة واحدة فقط. الصقه في API key. يرسله Dodo Payments باعتباره bearer token في ترويسة Authorization لكل طلب إلى SendGrid.4
Select Events
في Subscribed events، اختر فقط الأحداث التي يعالجها رمز التحويل الخاص بك. يصل الحدث الذي يتركه رمز التحويل دون تغيير إلى SendGrid بتنسيق Dodo Payments، ويرفضه SendGrid.
5
Configure Transformation
ضمن Transformation code، حرّر handler لتنسيق رسائل البريد الإلكتروني وفق SendGrid’s Mail Send API. ابدأ من الأمثلة، واستبدل كل
template_id بمعرّف القالب الديناميكي الخاص بك، الذي يبدأ بـ d-.6
Test & Create
ضمن Test this code، اختر نوع حدث وانقر على Simulate لمعاينة الطلب المرسل إلى SendGrid. ثم انقر على Create endpoint.
7
Done
يرسل Dodo Payments الآن رسالة بريد إلكتروني عبر SendGrid لكل حدث مشترك فيه. لرؤية كل عملية إرسال واستجابة SendGrid، افتح علامة التبويب Logs ضمن Developer → Webhooks.
أمثلة على Transformation Code
يعيّن كل handlerwebhook.url إلى Mail Send endpoint ويمرّر بيانات الحدث إلى قالب ديناميكي عبر dynamic_template_data. تكون مبالغ Dodo Payments بوحدة العملة الأصغر، لذلك تقسم الأمثلة المبلغ على 100. بالنسبة إلى العملات ذات المنازل العشرية الصفرية مثل JPY وKRW، استخدم المبلغ كما هو.
رسالة تأكيد الدفع
أرسل إيصالًا عند نجاح الدفع (payment.succeeded):
payment_confirmation.js
رسالة ترحيب بالاشتراك
رحّب بالعميل عند تنشيط الاشتراك (subscription.active):
subscription_welcome.js
إشعار بفشل الدفع
اطلب من العميل إعادة المحاولة عند فشل الدفع (payment.failed):
payment_failure.js
نصائح
- استخدم قوالب SendGrid الديناميكية لتخصيص المحتوى.
- مرّر بيانات الدفع التي يحتاج إليها قالبك في
dynamic_template_data. - عيّن عنوان
fromيطابق مرسلًا تم التحقق منه، وnameللمرسل. - أعد استخدام معرّفات القوالب للحفاظ على التنسيق نفسه لرسائل البريد الإلكتروني من النوع نفسه.
- أدرج رابط إلغاء الاشتراك في أي رسالة بريد إلكتروني تحتوي على محتوى تسويقي.
- لتخطي حدث في التعليمة البرمجية، عيّن
webhook.cancel = trueقبل إرجاع webhook. تسجّل السجلات عملية التسليم المتخطاة باعتبارها ناجحة.
استكشاف الأخطاء وإصلاحها
Emails Not Being Sent
Emails Not Being Sent
- تحقّق من أن مفتاح API يتضمن إذن Mail Send. لاستبداله، حرّر endpoint والصق مفتاحًا جديدًا في API key.
- تحقّق من أن كل
template_idينتمي إلى قالب ديناميكي نشط. - تحقّق من صلاحية عناوين البريد الإلكتروني للمستلمين.
- تحقّق من حدود الإرسال والحصص في SendGrid ضمن خطتك.
- افتح علامة التبويب Logs ضمن Developer → Webhooks واقرأ استجابة SendGrid لعملية التسليم الفاشلة.
Transformation Errors
Transformation Errors
- تحقّق من أن payload يطابق تنسيق SendGrid’s Mail Send.
- تحقّق من وجود جميع الحقول المطلوبة:
personalizationsمع عنوانtoواحد على الأقل، وfrom. - تحقّق من أن المفاتيح في
dynamic_template_dataتطابق المتغيرات في قالبك، مثل{{customer_name}}. - تحقّق من أن كل عنوان
fromتم التحقق منه في SendGrid.