المطورون/البداية
واجهة CardV API للتجار
تبيع CardV للشركات منتجات رقمية مدفوعة مسبقًا، مثل بطاقات الهدايا وشحن الألعاب وشرائح eSIM. تتيح لك واجهة API للتجار شراء هذه المنتجات تلقائيًا من خادمك. تتحقق من رصيدك، وتختار المنتج، وتعرف سعره، ثم تطلبه وتستلم الأكواد. تُدفع قيمة الطلبات من محفظتك المدفوعة مسبقًا لدى CardV. أما باقي المهام، مثل شحن المحفظة والاطلاع على سجل الطلبات، فتتم من بوابة التاجر.
#الوثائق
| الوثيقة | محتواها |
|---|---|
| المصادقة | الترويسات، وتوقيع الطلب، وإعداد المفتاح |
| المنتجات والطلبات | الرصيد، والمنتجات، والأسعار، والطلبات، والأكواد |
| القواعد العامة | المبالغ، والتواريخ، والأرقام التعريفية، وحد الطلبات، والأخطاء |
| Webhook | إشعارات الطلبات التي تصل إلى خادمك |
| بيئة Sandbox | الاختبار، وقائمة التحقق قبل التشغيل الفعلي |
| الأمان | حماية المفاتيح والأكواد |
#البيئات
| Live | Sandbox | |
|---|---|---|
| عنوان API الأساسي | https://b2b.cardv.net/api/v1 | https://sandbox.cardv.net/api/v1 |
| بوابة التاجر | https://b2b.cardv.net/portal/ | البوابة نفسها، مع التبديل إلى Sandbox |
بيئة Sandbox نسخة تجريبية منفصلة من CardV، تعمل بأموال تجريبية. المفاتيح والأرصدة والطلبات وأرقام المنتجات مختلفة في كل بيئة.
#البدء السريع
قدّم طلبًا لفتح حساب تاجر من البوابة، ثم أكّد بريدك الإلكتروني.
انتظر الموافقة. تراجع CardV بيانات شركتك، ثم تحصل على Merchant ID (رقم التاجر)، مثل
M00000001.افتح Sandbox. سجّل الدخول إلى البوابة واختر Sandbox من الشريط العلوي. ستجد في حسابك 1,000 USD من الأموال التجريبية.
أنشئ مفتاح API. في البوابة، اذهب إلى Integrations → API keys. أنشئ مفتاحًا، ثم اعرضه باستخدام الرمز الذي ترسله CardV إلى بريدك. احفظه في مخزن الأسرار لديك.
تحقق من رصيدك:
export CARDV_BASE=https://sandbox.cardv.net export CARDV_MERCHANT_ID=M00000001 # yours export CARDV_API_KEY=cvb2b_... # from your secret store AUTH=(-H "X-Merchant-Id: $CARDV_MERCHANT_ID" -H "X-Api-Key: $CARDV_API_KEY") curl -sS "$CARDV_BASE/api/v1/balance" "${AUTH[@]}"ابحث عن منتج:
curl -sS "$CARDV_BASE/api/v1/skus?search=steam&limit=20" "${AUTH[@]}"اختر منتجًا متاحًا (
"availability": "available")، وسجّل رقمهsku_id.اعرف السعر:
curl -sS "$CARDV_BASE/api/v1/skus/S000001/quote?quantity=1" "${AUTH[@]}"سجّل قيمة
merchant_price، فهي ما تدفعه عن الوحدة الواحدة.أرسل الطلب. يجب توقيع هذا الطلب. استخدم أحد الأمثلة في المصادقة مع هذا المحتوى:
{ "external_order_id": "TEST-0001", "items": [ {"sku_id": "S000001", "quantity": 1, "expected_unit_price": "9.2500"} ] }ستتلقى HTTP 201 ومعه رقم طلب CardV، مثل
O-00001234.استلم الأكواد. استدعِ
GET/api/v1/orders/O-00001234حتى تصبح الحالةsucceeded. تجد الأكواد فيitems[].deliveries[].display_fields. ويمكنك أيضًا أن تتلقى إشعار Webhook عند اكتمال الطلب.انتقل إلى التشغيل الفعلي (Live) بعد إكمال قائمة التحقق في Sandbox.
الأرقام والأسعار أعلاه مجرد أمثلة. استخدم القيم التي تظهر في قائمة منتجاتك.
#نظرة سريعة على الواجهة
تضم الواجهة سبع نقاط نهاية، وتبدأ كل المسارات بـ /api/v1.
| نقطة النهاية | الغرض منها | تحتاج توقيعًا؟ |
|---|---|---|
GET/account | بيانات شركتك وحالة وصولك إلى API | لا |
GET/balance | المبلغ المتاح لك للشراء | لا |
GET/skus | قائمة المنتجات المتاحة لك مع سعرك | لا |
GET/skus/{sku_id} | منتج واحد | لا |
GET/skus/{sku_id}/quote | السعر الحالي لكمية معيّنة | لا |
POST/orders | إرسال طلب يُدفع من محفظتك | نعم |
GET/orders/{order_id} | حالة الطلب وأكواده | لا |
أي نقطة نهاية أخرى تُرجع HTTP 403 عند استدعائها بمفتاح API:
{"detail": "This operation is only available in the Merchant Portal."}شحن رصيد الهاتف المحمول غير متاح عبر API.
#الأرقام التعريفية
| العنصر | مثال | ملاحظات |
|---|---|---|
| Merchant ID | M00000001 | رقمك الخاص، ولا يتغيّر أبدًا. |
| SKU (منتج يمكنك شراؤه) | S000456 | تستخدمه لمعرفة السعر وللطلب. |
| رقم طلب CardV | O-00001234 | احفظه مع طلبك. |
| رقم طلبك | SHOP-10001 | تختاره أنت (external_order_id). |
احفظ الأرقام التعريفية كنصوص، ولا تحاول تفكيكها. راجع القواعد العامة.
#ما يتم من بوابة التاجر
- شحن المحفظة، وتنبيه البريد عند انخفاض الرصيد
- سجل الطلبات والبحث فيها وتصديرها بصيغة CSV
- فواتير الطلبات
- حركات المحفظة ومطابقة الحسابات
- إعداد Webhook، وسجل الإرسال، وإعادة الإرسال
- مفاتيح API
- قائمة عناوين IP المسموح بها
- أعضاء الفريق وأدوارهم
- سجل التدقيق
- التحقق بخطوتين (2FA)
- التبديل بين Live وSandbox
#التوافق والدعم
قد نضيف حقولًا جديدة إلى الردود أو قيمًا جديدة للحالات دون إشعار مسبق. تجاهل الحقول التي لا تعرفها، واعتبر أي حالة طلب غير معروفة "لم يكتمل بعد". لا تعتمد على صياغة رسائل الخطأ.
راسل [email protected] وأرفق Merchant ID، والبيئة، وأرقام الطلبات، والوقت (UTC)، ورمز حالة HTTP.
لا ترسل أبدًا مفاتيح API أو التواقيع أو أسرار Webhook أو أكواد البطاقات.
هل لديك سؤال حول التكامل؟ راسلنا على [email protected] مع ذكر Merchant ID ومعرّف الطلب أو الاستدعاء.