واجهة API لبطاقات الهدايا لبوتات تيليجرام
الإجابة المختصرة
تعمل واجهة API لبطاقات الهدايا داخل بوت تيليجرام تمامًا كما تعمل في متجر إلكتروني — الفارق هو قناة التسليم فقط. يستقبل البوت اختيار المنتج والدفع، يستدعي نقطة إنشاء الطلب لدى المورّد، يستلم الكود ويرسله للمستخدم في المحادثة. لا حاجة لأي واجهة ويب. خطوات التطبيق الأساسية هي — قائمة المنتجات، مُحفّز الدفع، استدعاء الـ API، تسليم الكود عبر sendMessage، ومعالجة الأخطاء.
التعريف: واجهة API لبطاقات الهدايا لبوتات تيليجرام هي واجهة REST API خاصة بالمورّد يستدعيها خادم البوت لإنشاء طلبات بطاقات الهدايا واستلام الأكواد، ثمّ يسلّمها البوت إلى العميل ضمن محادثة تيليجرام.
الخلاصة الأساسية: واجهة API لبطاقات الهدايا مستقلّة عن القناة. سواء استدعيتها من خادم متجر إلكتروني أو من خادم بوت تيليجرام، فلا فرق بالنسبة للـ API. التطبيق الوحيد الخاص بالبوت هو استبدال التسليم عبر البريد أو صفحة الطلب باستدعاء bot.sendMessage().
لمن هذا الدليل
- مطوّرو بوتات تيليجرام الذين يضيفون بيع بطاقات الهدايا إلى بوتاتهم
- مشغّلو البوتات الذين يبيعون عمليات الشحن بالفعل ويريدون إضافة أكواد بطاقات الهدايا
- المطوّرون الذين يقيّمون ما إذا كان بوت تيليجرام واجهة متجر صالحة لبطاقات الهدايا
بطاقة الهدية مقابل الشحن في بوت تيليجرام
| العامل | بطاقة الهدية (كود) | الشحن (مباشرة إلى الحساب) |
|---|---|---|
| إدخال العميل المطلوب | لا شيء | معرّف اللاعب (إلزامي) |
| التسليم | سلسلة كود في رسالة | تأكيد إضافة الرصيد للحساب |
| خطر الاسترداد | يمكن إساءة استخدام الكود — خطر متوسّط | غير قابل للعكس — خطر منخفض |
| تعقيد التكامل | أقل | أعلى (التحقّق من معرّف اللاعب) |
| أمثلة المنتجات | Steam، PSN، Xbox، Google Play | PUBG UC، Robux، ML Diamonds |
في أول تطبيق، تكون أكواد بطاقات الهدايا أبسط. أما تكامل الشحن فيتطلّب خطوة إضافية للتحقّق من معرّف اللاعب.
المسار الكامل للبوت لتسليم بطاقة الهدية
/start
→ Bot: "Select a product category"
[Gaming] [Retail] [Mobile]
[Gaming]
→ Bot: "Select a product"
[Steam $10] [Steam $20] [PSN $10] [Xbox $15]
[Steam $20]
→ Bot: "Steam $20 (US) — $21.99. Pay now?"
[Pay with Stars] [Pay with Crypto]
[Pay with Stars — Telegram payment]
→ Telegram native payment flow
→ On successful_payment event:
Bot calls supplier API: POST /api/orders/ { "items": [{ "itemId": "product_01k...", "quantity": 1 }] }
Polls GET /api/orders/{order_id} until status=="completed"; code in items[].externalData
Bot.sendMessage: "Your Steam code: XXXXX-YYYYY-ZZZZZ
Redeem at: store.steampowered.com"
تكامل الدفع لبوتات بطاقات الهدايا
| الطريقة | تكامل تيليجرام | نطاق الرسوم | الاحتكاك |
|---|---|---|---|
| Telegram Stars | أصلي، عبر Payments API | ~30% اقتطاع | منخفض جدًا |
| العملات المشفّرة (TON، USDT) | رابط محفظة خارجية أو بوت @wallet | 1–2% | منخفض |
| رابط دفع Stripe | إعادة توجيه إلى المتصفّح | 2.5–3.5% | متوسّط |
ملاحظة بشأن Telegram Stars: يقتطع تيليجرام نحو 30% من مدفوعات Stars. لمنتج بقيمة 10$، يكون إيرادك الفعلي من دفعة Stars نحو 7$. يتطلّب هذا سعر تجزئة أعلى أو خصم جملة أعلى للحفاظ على الهامش. اعمل النمذجة بعناية قبل تفعيل Stars كطريقة الدفع الوحيدة لديك.
صيغة رسالة تسليم الكود
عند إرسال الكود إلى المستخدم، أدرِج دائمًا:
✅ Order complete
Product: Steam Gift Card $20 (US Region)
Code: XXXXX-YYYYY-ZZZZZ
Redeem at: store.steampowered.com/account/redeemwalletcode
Region: US Steam accounts only
Need help? /support
نسّق الكود في كتلة أحادية المسافة ليسهل نسخه:
`XXXXX-YYYYY-ZZZZZ`
يعرض تيليجرام النص بين العلامتين الماثلتين (backticks) بخط أحادي المسافة، وهو مريح للنسخ على الجوال.
معالجة الأخطاء
| الخطأ | السبب | استجابة البوت |
|---|---|---|
| فشل استدعاء الـ API | خطأ في الشبكة أو لدى المورّد | "Order processing — please wait. If not delivered within 2 minutes, contact /support" |
الـ API يُعيد failed |
نفاد المخزون أو مشكلة لدى المورّد | "Delivery failed. You have not been charged. Contact /support" |
| حقل الكود فارغ | مشكلة من جانب المورّد | عامِله كفشل — لا تسلّم |
| الدفع مؤكَّد لكنّ الـ API يفشل | حالة تسابق (race condition) | سجّل الطلب — أعِد المحاولة مرّة واحدة — نبّه فريق التشغيل إذا فشلت إعادة المحاولة |
لا ترسل أبدًا كودًا فارغًا أو نائبًا (placeholder) إلى المستخدم. إذا أعاد الـ API خطأ، عالِجه بسلاسة.
تسجيل الطلبات
لكل طلب بطاقة هدية مكتمل في بوتك، سجّل:
- معرّف مستخدم تيليجرام (وليس اسم المستخدم — المعرّفات ثابتة بينما أسماء المستخدمين قد تتغيّر)
- رمز المنتج SKU
- معرّف الطلب لدى المورّد
- الكود (مُجزّأ hashed، وليس نصًا صريحًا في قاعدة بياناتك)
- الطابع الزمني
- معرّف تأكيد الدفع
هذا السجلّ مطلوب لحلّ النزاعات — فإذا ادّعى مستخدم أنه لم يستلم كودًا، تتحقّق من سجلّك.
قائمة التحقّق
- إعداد كتالوج المنتجات في البوت (مع تسمية صريحة للمنطقة)
- دمج طريقة الدفع واختبارها
- معالِج حدث الدفع — تشغيل استدعاء الـ API فقط عند تأكيد الدفع
- استدعاء إنشاء الطلب عبر API المورّد مع معالجة الأخطاء
- تسليم الكود عبر sendMessage مع تعليمات كاملة
- الكود بصيغة أحادية المسافة لتسهيل النسخ
- أمر /support مع معلومات التواصل
- تسجيل المعاملات لكل طلب
- مراقبة الرصيد مع تنبيه
- إبلاغ سياسة الاسترداد (/terms أو في رسالة /start)
