وضع الاختبار والوضع الحي
ابنِ تكاملك في وضع الاختبار دون أموال حقيقية، ثم انتقل إلى المفاتيح الحية بعد اعتماد حسابك مستعينًا بقائمة التحقق قبل الإطلاق.
لكل حساب في تيرا باي وضعان منفصلان، وتحدد الوضع بمفتاح الـ API الذي تستخدمه.
| الميزة | وضع الاختبار | الوضع الحي (Live) |
|---|---|---|
| المفتاح السري | sk_test_… | sk_live_… |
قيمة livemode في الكائنات | false | true |
| نقل الأموال | لا | نعم |
| صفحة الدفع | صفحة الدفع في تيرا باي مع شارة TEST، متصلة ببيئة الاختبار لدى معالج البطاقات. ادفع ببطاقات الاختبار. | الصفحة نفسها بوسائل حقيقية: كي-نت ومدى والبطاقات وApple Pay… |
return_url وروابط الـ Webhook | https:// أو http:// (للتطوير المحلي والأنفاق) | https:// فقط |
| متى يتاح | فور التسجيل | بعد اعتماد حسابك |
| الـ Webhooks | تُرسل إلى نقاط نهاية وضع الاختبار مع "livemode": false | تُرسل إلى نقاط نهاية الوضع الحي مع "livemode": true |
لا تختلط بيانات الوضعين أبدًا. عملية الدفع التي أُنشئت بمفتاح اختبار لا يمكن قراءتها أو استردادها أو عرضها إلا بمفتاح اختبار.
الانتقال إلى الوضع الحي
يتطلب الوضع الحي حسابًا معتمدًا. قبل الاعتماد، تعيد الطلبات الحية رمز الحالة 403 مع الخطأ التالي:
{
"error": {
"code": "merchant_not_active",
"message": "Live payments are available once your account is activated."
}
}أكمل التسجيل
افتح التسجيل في لوحة التحكم وأدخل بيانات نشاطك التجاري والشخص المسؤول وحسابك البنكي، ثم ارفع المستندات المطلوبة (مثل البطاقة المدنية والرخصة التجارية وخطاب البنك، حسب نوع نشاطك) وأرسل الطلب للمراجعة.
انتظر الاعتماد
يراجع فريق تيرا باي طلبك. إذا نقصت معلومات، سيُطلب منك استكمالها في لوحة التحكم. عند اعتماد الحساب تصبح حالته نشط.
أنشئ مفتاحًا حيًا وانتقل إليه
أنشئ مفتاحًا في الوضع الحي من المطورون ← مفاتيح API (ستؤكده بكلمة مرورك)، واستبدل sk_test_… بـ sk_live_… في إعدادات الإنتاج.
أضف نقطة Webhook حية
سجّل رابط الـ Webhook الخاص بالإنتاج بالمفتاح الحي (أو من لوحة التحكم في الوضع الحي) واحفظ سر التوقيع الخاص به. راجع الـ Webhooks.
الوضع الحي يتطلب HTTPS
في الوضع الحي، يجب أن يبدأ كل رابط تقدّمه لتيرا باي بـ https://:
return_urlعند إنشاء عملية دفع؛urlلنقطة نهاية الـ Webhook.
يُرفض الرابط الذي يبدأ بـ http:// بالخطأ 422 validation_error:
{
"error": {
"code": "validation_error",
"message": "The return_url must use https:// in live mode.",
"details": { "fields": { "return_url": "must use https:// in live mode" } }
}
}يقبل وضع الاختبار http:// لتستخدم localhost أو نفقًا أثناء التطوير. أما روابط الدفع فلا تحمل رابطًا خاصًا بالتاجر، لذا لا يشملها هذا الشرط.
قائمة التحقق قبل الإطلاق
راجع هذه القائمة قبل أن تنقل إعدادات الإنتاج إلى sk_live_….
المدفوعات
- يتأكد خادمك من كل عملية دفع عبر
GET /v1/payments/:idأو Webhook تم التحقق منه، ولا يعتمد على إعادة التوجيه وحدها (معالجة رابط العودة). - تتحقق صفحة العودة من تطابق
amountوcurrencyوreference(أو الـidالمحفوظ) مع الطلب قبل تعليمه مدفوعًا. - تعليم الطلب مدفوعًا آمن من التكرار: قد تصل صفحة العودة والـ Webhook كلاهما وبأي ترتيب.
- لا يُغلق
payment.failedأوpayment.canceledالطلب نهائيًا: يظل بإمكان العميل الدفع عبرcheckout_urlنفسه حتىexpires_at(المدفوعات). - تُرسل المبالغ أعدادًا صحيحة بالوحدات الصغرى وفق المنازل العشرية الصحيحة، خاصة مع
KWDوBHDوOMRوJOD(المبالغ والعملات). - يستخدم
return_urlالبروتوكولhttps://.
الـ Webhooks
- سُجّلت نقطة Webhook حية برابط
https://يمكن الوصول إليه من الإنترنت، وحُفظ سر التوقيع الحي على خادمك. - يتم التحقق من التواقيع على الجسم الخام مع مهلة 5 دقائق، وتُتجاهل الأحداث المكررة حسب
Teyra-Event-Id(التحقق من التواقيع). - تردّ نقطة النهاية برمز
2xxخلال 10 ثوانٍ وتنفّذ الأعمال البطيئة في الخلفية. - هناك من يتابع عمليات التسليم الفاشلة في المطورون ← Webhooks.
طلبات الـ API
- تحمل طلبات
POSTالترويسةIdempotency-Key، وتعيد المحاولات استخدامها (منع التكرار). - تُعالج الأخطاء وتُسجّل حسب
error.code(الأخطاء). - يُعاد إرسال الاستجابات
429 rate_limitedو5xxبتأخير متصاعد مع احترامRetry-After(المصادقة). - تُتجاهل الحقول وأنواع الأحداث ورموز الأخطاء غير المعروفة بدل اعتبارها أعطالًا.
المفاتيح والأمان
- المفتاح السري الحي محفوظ على خادمك فقط، في مخزن أسرار أو متغير بيئة، وليس في متصفح أو تطبيق أو مستودع (المصادقة).
- لكل نظام (الموقع، نظام ERP، الإضافة) مفتاحه الخاص، لتستطيع إلغاء أحدها دون التأثير على الباقي.
- ساعة خادمك متزامنة عبر NTP.
- لأعضاء فريقك في حساب تيرا باي الأدوار التي يحتاجونها فقط، مع تفعيل المصادقة الثنائية.
الفحص الأخير
- تنجح كل سيناريوهات الاختبار في وضع الاختبار.
- بعد الانتقال، نفّذ دفعة حية صغيرة ببطاقة حقيقية، وتأكد منها من البداية إلى النهاية (صفحة العودة والـ Webhook ولوحة التحكم)، ثم استردها.