١. الاتصال وجلب الكتالوج
تحقق من صلاحية API وعناوين IP المسموحة في ملفك. أضف عنوان الموقع واسم المستخدم والمفتاح في DHRU. اختبر accountinfo ثم imeiservicelist / serverservicelist / remoteservicelist.
تكامل بدون كود لوحات Dhru Fusion أو نقاط نهاية REST API عالية الأداء لتطبيقات PHP المخصصة.
قيم التكوين المطلوبة ضمن 'Suppliers / API Server' في لوحة مسؤول Dhru Fusion الخاصة بك.
يقوم إضافة Dhru Fusion بتذييل /api/index.php تلقائياً لنهاية الرابط. لذلك في حقل API URL ضع النطاق الرئيسي فقط بدون إضافة /api/index.php.
رصيد الحساب وبياناته
{ SUCCESS: [{ AccoutInfo: { credit, currency } }] }
الخدمات النشطة والحقول المطلوبة
{ SUCCESS: [{ LIST: { Category: { SERVICES: { } } } }] }
إرسال طلب جديد
{ SUCCESS: [{ REFERENCEID: "full-order-uuid" }] }
الاستعلام عن حالة الطلب ونتيجته
{ SUCCESS: [{ STATUS: 4, CODE: "RESULT" }] }
عنوان USDT الشخصي وبيانات التحقق منه
{ SUCCESS: [{ ADDRESS, CURRENCY, NETWORKS, GENERATION, SALT, FACTORY, IMPLEMENTATION, INITCODEHASH }] }
الدفعات الواردة إلى العنوان الشخصي وحالاتها
القيمة الافتراضية لـ LIMIT هي 50. تكون SINCE بثواني Unix أو بتاريخ ISO 8601 مع المنطقة الزمنية، وتعيد الدفعات التي تغيّرت منذ ذلك الوقت بدءًا من الأقدم، فاستخدم قيمة UPDATED لآخر دفعة في طلب SINCE التالي. AMOUNT هو المبلغ الوارد، وفي الشبكات التي تُخصم فيها تكلفة الشبكة (افتراضيًا كل الشبكات عدا BSC) يقل المبلغ المضاف إلى الحساب بمقدار تكلفة الشبكة ورسم النقل. المفتاح الفريد هو ID (أو TXID مع LOGINDEX)
LIMIT (1-50) · SINCE · TXID
{ SUCCESS: [{ DEPOSITS: { ID: { ID, TXID, LOGINDEX, NETWORK, CHAINID, AMOUNT, CURRENCY, STATUS, CONFIRMATIONS, DATE, UPDATED } } }] }
STATUS: SEEN | CONFIRMING | CREDITED | HELD | BELOW_MIN | WRONG_NETWORK
| الإجراء | الوصف | بيانات الاستجابة | الحالة |
|---|---|---|---|
| accountinfo | رصيد الحساب وبياناته | { SUCCESS: [{ AccoutInfo: { credit, currency } }] } | نشط |
| imeiservicelist / serverservicelist / remoteservicelist | الخدمات النشطة والحقول المطلوبة | { SUCCESS: [{ LIST: { Category: { SERVICES: { } } } }] } | نشط |
| placeimeiorder / placeserverorder | إرسال طلب جديد | { SUCCESS: [{ REFERENCEID: "full-order-uuid" }] } | نشط |
| getimeiorder / getserverorder | الاستعلام عن حالة الطلب ونتيجته | { SUCCESS: [{ STATUS: 4, CODE: "RESULT" }] } | نشط |
| getdepositaddress | عنوان USDT الشخصي وبيانات التحقق منه | { SUCCESS: [{ ADDRESS, CURRENCY, NETWORKS, GENERATION, SALT, FACTORY, IMPLEMENTATION, INITCODEHASH }] } | حسب الحساب |
| getdepositsLIMIT (1-50) · SINCE · TXID | الدفعات الواردة إلى العنوان الشخصي وحالاتهاالقيمة الافتراضية لـ LIMIT هي 50. تكون SINCE بثواني Unix أو بتاريخ ISO 8601 مع المنطقة الزمنية، وتعيد الدفعات التي تغيّرت منذ ذلك الوقت بدءًا من الأقدم، فاستخدم قيمة UPDATED لآخر دفعة في طلب SINCE التالي. AMOUNT هو المبلغ الوارد، وفي الشبكات التي تُخصم فيها تكلفة الشبكة (افتراضيًا كل الشبكات عدا BSC) يقل المبلغ المضاف إلى الحساب بمقدار تكلفة الشبكة ورسم النقل. المفتاح الفريد هو ID (أو TXID مع LOGINDEX) | { SUCCESS: [{ DEPOSITS: { ID: { ID, TXID, LOGINDEX, NETWORK, CHAINID, AMOUNT, CURRENCY, STATUS, CONFIRMATIONS, DATE, UPDATED } } }] }STATUS: SEEN | CONFIRMING | CREDITED | HELD | BELOW_MIN | WRONG_NETWORK | حسب الحساب |
تُرجع الإجراءات المرتبطة بالحساب خطأً ما دام عنوان USDT الشخصي غير مفعّل في حسابك.
يجب أن تطابق قيم FACTORY وIMPLEMENTATION وINITCODEHASH القيم أدناه، وأن يطابق ADDRESS هذا الحساب. احفظ هذه القيم وأول ADDRESS تستلمه في نظامك، وإن اختلف أي منها فلا ترسل الدفعة.
هذه عناوين عقود؛ لا ترسل إليها أي دفعة. أرسل فقط إلى ADDRESS الذي يُرجعه getdepositaddress.
ADDRESS == keccak256(0xff ++ FACTORY ++ SALT ++ INITCODEHASH)[12:] GENERATION 1 FACTORY 0xE126D3e733a1A7a80e592527Cf90D2a1Cf7Aa9Fb IMPLEMENTATION 0x6A86F3b37D235bEEde0a455935530593a2A56A51 INITCODEHASH 0xf3df90581a9c492a338e9e5a97e77a2c7e158fbedebc2be2f7ef21293a0b4629
تحقق من صلاحية API وعناوين IP المسموحة في ملفك. أضف عنوان الموقع واسم المستخدم والمفتاح في DHRU. اختبر accountinfo ثم imeiservicelist / serverservicelist / remoteservicelist.
استورد fieldname وfieldtype وrequired وfieldoptions من Requires.Custom. استخدم اسم الحقل لا التسمية. قد يصف CUSTOM حقل IMEI الرئيسي؛ افصله عن الحقول الإضافية. استخدم getimeiservicedetails وأعد مزامنة التفاصيل إذا غابت الحقول.
أرسل معرف الخدمة الكامل وكمية QNT الصحيحة والحقول المطلوبة. احفظ REFERENCEID كاملاً؛ المعرف المختصر للعرض فقط. تابع عبر getimeiorder. تعني SUCCESS قبول الطلب، أما التسليم فيحدده STATUS.
ثبّت parameters.client_request_id للطلب نفسه. لا ترسل معرفاً جديداً بعد انتهاء المهلة؛ تحقق من الطلب الحالي أولاً. احترم 429 وRetry-After وقلل معدل الاستعلام.
لا تضع المفتاح في JavaScript المتصفح أو مستودع عام. استخدم HTTPS بين الخوادم واسمح بعنوان IP العام لخادم التكامل. احجب المفاتيح وكلمات المرور وملفات العملاء الموقعة من السجلات.
لا يكفي HTTP 200؛ افحص ERROR وSUCCESS. أكمل الحقول المذكورة في الخطأ واعرض السبب الفعلي لأخطاء الرصيد أو توفر الخدمة. قد تتغير الأسعار؛ اعتمد مبلغ الطلب المقبول.
0مستلم / معلق
1قيد المعالجة
3مرفوض / مسترد
4مكتمل
هذا قالب؛ عدّل الحقول وفق الخدمة. قد ينشئ تشغيله طلباً مدفوعاً. اختبر accountinfo أولاً. عملاء DHRU الحاليون بصيغة XML مدعومون أيضاً.
<?php
$fields = ['PRODUCTID' => 'example', 'IMEI1' => 'YOUR_IMEI'];
$parameters = [
'ID' => 'FULL_SERVICE_ID',
'QNT' => 1,
'CUSTOMFIELD' => base64_encode(json_encode($fields)),
'client_request_id' => 'YOUR_UNIQUE_REQUEST_ID'
];
$body = http_build_query([
'username' => getenv('RESELLER_USERNAME'),
'apiaccesskey' => getenv('RESELLER_API_KEY'),
'action' => 'placeimeiorder', 'requestformat' => 'JSON',
'parameters' => base64_encode(json_encode($parameters))
]);
$ch = curl_init('https://imeiveserver.com/api/index.php');
curl_setopt_array($ch, [CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_TIMEOUT => 60]);
$response = curl_exec($ch);
if ($response === false) throw new RuntimeException('Transport error; reconcile before retry');
$result = json_decode($response, true, 512, JSON_THROW_ON_ERROR);
curl_close($ch);
// Inspect ERROR / SUCCESS; persist the complete REFERENCEID.
?>