اربط نظامك مع المتجر من سيرفرك. كل الأسعار في الردود هي ما سيُخصم من رصيدك بعد نسبة مجموعتك، ولا تحتاج إلى إعادة حسابها. يمكن إرسال رابط هذه الصفحة للمبرمج، والتوكن لا يظهر إلا لصاحب الحساب.
أرسِله في ترويسة الطلب باسم token. لا تضعه في رابط، ولا في تطبيق أو صفحة يراها زبائنك. من يملك التوكن يستطيع رؤية الرصيد وإنشاء طلبات.
| العنوان | https://di-p.com/api |
|---|---|
| الترويسة | token: توكن الحساب |
| الصيغة | Accept: application/json |
| الطريقة | profile وproducts بطلب GET. new_order وstatus يقبلان GET وPOST، وفضّل POST عند الإنشاء حتى لا تُحفظ الحقول في سجل الروابط. التوكن في الترويسة فقط، ووضعه في الرابط لا يسجّل الدخول. |
curl -s "https://di-p.com/api/profile" \ -H "token: YOUR_TOKEN" \ -H "Accept: application/json"
| GET /profile | الاسم والبريد والرصيد الحالي. |
|---|---|
| GET /products | المنتجات وأسعار حسابك وحدود الكمية وحقول الشراء. |
| POST /new_order | إنشاء طلب وخصم سعره من الرصيد. GET مقبول أيضاً، وPOST أنسب. |
| GET /status | حالة طلب يخص حسابك. أرسل order_id عدداً صحيحاً. POST مقبول أيضاً. |
إذا كان التوكن فارغاً أو غير صحيح فالاستجابة 401 والنص User not found. لا يُعاد حساب آخر.
{
"name": "اسم الحساب",
"balance": "12.500000000000",
"email": "user@example.com"
}
price سعر وحدتك بعد نسبة المجموعة. في منتج الكمية المحددة يكون سعر أول شريحة، والسعر الواجب دفعه لكل شريحة موجود داخل quantity_options. available تعني أن قسم المنتج مفتوح، وهي إشارة لنظامك ولا تمنع الطلب وحدها. إذا كان مخزون المنتج نفسه صفراً يعود Product not found.
| type | transfer تحويل، code كود، fixed_quantity كمية محددة. |
|---|---|
| min_quantity | أقل كمية مقبولة. أرسل عدداً صحيحاً من غير كسور. لمنتج التحويل والكود الإجمالي = price × quantity. |
| max_quantity | أعلى كمية. إذا كانت null فلا يوجد سقف عددي. |
| fields | حقول مطلوبة. الاسم الأول دائماً player_id، والذي يليه extra_2 ثم extra_3 ثم extra_4. |
| quantity_options | تظهر فقط مع fixed_quantity. quantity نص الشريحة، وprice سعرها الكامل بعد النسبة. |
{
"id": 120,
"name": "منتج تحويل",
"category_id": 4,
"type": "transfer",
"available": true,
"price": 1.04,
"min_quantity": 1,
"max_quantity": 10000,
"fields": [
{"name": "player_id", "label": "معرف الحساب ID", "type": "text", "required": true},
{"name": "extra_2", "label": "ملاحظة", "type": "text", "required": false}
]
}
{
"id": 900,
"type": "fixed_quantity",
"price": "0.08000000",
"quantity_options": [
{"quantity": "10", "price": "0.08000000"},
{"quantity": "12", "price": "0.09600000"}
]
}
أرسل product_id كما هو في القائمة، وquantity عدداً صحيحاً. أرسل uuid فريداً حتى 222 حرفاً لكل عملية. إعادته لنفس الحساب تُرجع الطلب القديم داخل order_exists من غير خصم ثانٍ، والقيمة المستخدمة في حساب آخر تُرفض بـ 409. لا ترسل 0: الطلبات القديمة بلا رقم عملية مخزنة بهذه القيمة، والنظام يتجاهلها ويولّد رقماً جديداً. إذا تركت الحقل فارغاً يولّد النظام قيمة ويعيدها في الرد.
الكمية عدد صحيح بين الحد الأدنى والأعلى. الإجمالي المخصوم = price × quantity. عبّئ كل حقل required باسمه. الهاتف أرقام مع + أو - فقط، والحقل الرقمي أرقام فقط. الحقل الأول حتى 55 حرفاً، والحقول التالية حتى 120.
curl -s -X POST "https://di-p.com/api/new_order" \ -H "token: YOUR_TOKEN" \ -H "Accept: application/json" \ -d "product_id=PRODUCT_ID" \ -d "quantity=1000" \ -d "player_id=PLAYER_ID" \ -d "uuid=PUT-A-NEW-UUID"
غالباً الكمية 1، ولا يُطلب معرف لاعب إلا إذا أعادت القائمة حقولاً. الكود نفسه يصل لاحقاً في status.code عندما تصبح الحالة 1.
curl -s -X POST "https://di-p.com/api/new_order" \ -H "token: YOUR_TOKEN" \ -H "Accept: application/json" \ -d "product_id=PRODUCT_ID" \ -d "quantity=1" \ -d "uuid=PUT-A-NEW-UUID"
أرسل quantity=1 ونص الشريحة كما هو في quantity_options.quantity داخل fixed_quantity. في المثال ضع رقم المنتج مكان PRODUCT_ID ونص الشريحة مكان SLICE. السعر المخصوم هو price الخاص بتلك الشريحة مرة واحدة. لا تضرب سعر الشريحة في رقمها، ولا ترسل رقم الشريحة مكان quantity. أكثر من شريحة في الطلب الواحد مرفوض.
curl -s -X POST "https://di-p.com/api/new_order" \ -H "token: YOUR_TOKEN" \ -H "Accept: application/json" \ -d "product_id=PRODUCT_ID" \ -d "quantity=1" \ -d "fixed_quantity=SLICE" \ -d "player_id=PLAYER_ID" \ -d "uuid=PUT-A-NEW-UUID"
{
"id": 719400,
"uuid": "8c1a0d3e-2f4b-4a6e-9c11-0b7e5d2a1001",
"name": "اسم المنتج",
"price": "1.040000000000",
"state": 0,
"replay_api": null,
"replay_images": [],
"fixed_quantity": null,
"shown_quantity": "1000"
}
احفظ id ثم اسأل عن الحالة. shown_quantity هي الكمية المعروضة: رقم الطلب العادي، أو نص الشريحة في الكمية المحددة.
curl -s "https://di-p.com/api/status?order_id=ORDER_ID" \ -H "token: YOUR_TOKEN" \ -H "Accept: application/json"
| 0 | قيد المعالجة. انتظر ثم أعد السؤال. |
|---|---|
| 3 | أُرسل للتنفيذ الآلي وما زال قيد المتابعة. |
| 1 | مكتمل. اقرأ code للكود، وreplay_api وreplay_images للرد والصورة. |
| 2 | ملغى. يُعاد المبلغ إلى الرصيد، ولا تعِد إرسال نفس العملية إلا بـ uuid جديد إذا أراد الزبون ذلك. |
أرسل order_id عدداً صحيحاً. اسأل كل بضع ثوان حتى تصل الحالة إلى 1 أو 2. لا تنشئ طلباً جديداً لمجرد معرفة النتيجة. طلب لا يخص توكنك، أو رقم ناقص، يُرجع Order not found.
{
"id": 719400,
"name": "اسم المنتج",
"price": "1.040000000000",
"state": 1,
"quantity": "1000",
"player_id": "123456",
"code": "ABCD-1234",
"message": null,
"replay_api": "تم التنفيذ",
"replay_images": ["https://example.com/reply.png"],
"fixed_quantity": null,
"shown_quantity": "1000"
}
| 401 | User not found. التوكن ناقص أو خطأ أو موضوع في الرابط بدل الترويسة. |
|---|---|
| 404 | المنتج غير موجود أو متوقف، أو الكمية ليست عدداً صحيحاً أو أصغر من الحد (Quantity must be biggest) أو أكبر منه (Quantity must be smaller)، أو الرصيد غير كافٍ (you dont have balance)، أو رقم الطلب ليس لحسابك. |
| 409 | uuid مستخدم من قبل في حساب آخر. ولّد قيمة جديدة. |
| 422 | حقل ناقص أو غير صالح، أو uuid أطول من 222 حرفاً، أو الشريحة غير موجودة، أو أُرسلت كمية غير 1 لمنتج الشرائح. الرسالة عربية. |
| 429 | نفس المنتج ونفس player_id خلال 60 ثانية. انتظر wait_seconds ثم أعد المحاولة بنفس uuid حتى لا يُخصم مرتين إذا كان الطلب الأول قد نجح. |
إذا نجح الطلب الأول ثم انقطع الاتصال قبل أن تقرأ الرد، أعد الإرسال بنفس uuid. ستصلك بيانات الطلب الموجود بدل خصم جديد.