بدء سريع
ثلاث خطوات من الصفر إلى أوّل قرار:
- احصل على مفتاحك فورًا من بوّابة FakeShield التجريبيّة — بريدك فقط، بلا انتظار.
- ثبّت الحزمة، أو استعمل
curlمباشرةً. - افحص قبل الشحن، ثمّ أعِد النتيجة بعد التسليم أو الإرجاع.
npm i @mystoq/fakeshield
import { FakeShield } from '@mystoq/fakeshield';
const fs = new FakeShield(process.env.FAKESHIELD_KEY);
const { tier, score, recommend } = await fs.check({
phone: '0555123456',
name: 'سامية بن يحيى',
address: 'حي الشهداء، عمارة 4، عنابة',
wilaya: 23,
amount: 8400,
});
if (tier === 'reject') return refuse();
if (tier === 'call') return queueForConfirmation();
await ship();
المصادقة
مفتاح في ترويسة كلّ طلب:
Authorization: Bearer fsk_<prefix>_<secret>
لا تضع المفتاح في المتصفّح
المفتاح يمثّلك، وسجلّات المشترين بيانات شخصيّة. الاستدعاء من خادمك فقط — لا من جافاسكربت صفحة الدفع.
الحدود والحصص
| البند | الطبقة المجّانيّة |
|---|---|
| الفحوص | 1000 فحص يوميًّا |
| تسجيل النتائج | بلا حدّ — لا نريد أبدًا تثبيط تغذية الشبكة |
| معدّل الطلبات | 300 طلب/دقيقة |
| الأساس | https://mystoq.com/api |
فحص طلب
كلّما أرسلت حقولًا أكثر، كان القرار أدقّ. الحقل الوحيد الإلزاميّ هو phone.
curl -X POST https://mystoq.com/api/fakeshield/check \
-H "Authorization: Bearer $FAKESHIELD_KEY" \
-H "Content-Type: application/json" \
-d '{"phone":"0555123456","name":"سامية بن يحيى",
"address":"حي الشهداء، عنابة","wilaya":23,"amount":8400}'
{
"score": 96,
"risk": -18,
"tier": "ship",
"recommend": "اشحن",
"signals": [
{ "k": "الشبكة", "v": "3 توصيلات عبر متجرين", "c": "ok", "w": -18 },
{ "k": "IP", "v": "سكني", "c": "ok", "w": 0 }
]
}
| tier | المدى | المعنى |
|---|---|---|
ship | 70–100 | اشحن |
call | 40–69 | أكّد هاتفيًّا أوّلًا |
reject | 0–39 | أدلّة حقيقيّة ضدّ هذا المشتري |
تسجيل النتيجة
هذا ما تدفعه مقابل الفحص المجّانيّ: ماذا حدث فعلًا. والتسليم الناجح لا يقلّ أهميّةً عن الرفض — فهو ما يمنع مشتريًا نزيهًا من الانزلاق إلى تصنيفٍ سيّئ.
curl -X POST https://mystoq.com/api/fakeshield/v1/outcomes \
-H "Authorization: Bearer $FAKESHIELD_KEY" \
-H "Content-Type: application/json" \
-d '{"phone":"0555123456","order_ref":"ORD-2291","outcome":"delivered"}'
| الحقل | الوصف |
|---|---|
phone | مطلوب |
order_ref | مطلوب — مرجعك أنت. التكرار لا يُحتسب مرّتين |
outcome | delivered · returned · cancelled · refused |
wilaya · amount · occurred_at | اختياريّة |
خاصيّة التكرار الآمن: إعادة إرسال نفس order_ref تُعيد duplicate بلا أثر — آمنة للاستدعاء من webhook أو طابور يُعيد المحاولة.
استعلام عموميّ
بلا مفتاح، ويُعيد حكمًا فقط — لا تاريخ ولا أعداد. سجلّ أيّ شخص بياناتٌ شخصيّة لا تُكشف علنًا.
{
"phone": "0555123456",
"status": "clean",
"is_blocked": false,
"public_message": "رقم غير محظور — لا سجلّ سلبي على الشبكة."
}
status: clean (معروف وبلا بلاغ) · blocked (سجلّ سلبي مؤكَّد) · unknown (لم يمرّ على الشبكة).
لا يُعيد هذا المسار أيّ رقم إحصائيّ — لا عدد طلبات ولا إلغاءات ولا متاجر ولا تواريخ. تلك بيانات شخصيّة لا تُكشف إلّا للتاجر المُصادَق عليه عبر /api/dashboard/buyer-trust/{phone}.
الأخطاء
| الرمز | المعنى |
|---|---|
401 | مفتاح مفقود أو خاطئ أو مُلغى |
403 | account_suspended |
422 | خطأ في المدخلات — التفاصيل في errors |
429 | quota_exceeded مع resets_at، أو تجاوز معدّل الطلبات |
اِفشل مفتوحًا
إن تعذّر الوصول إلى FakeShield، لا توقف البيع. الفحص مساعدةٌ لا بوّابة — والحزمة تُعيد المحاولة مرّتين تلقائيًّا قبل أن تُخطئ.
قواعد الشبكة
- لا اختراع لدرجة: رقمٌ لم يمرّ علينا يُعاد بـ
unknown— لا تخمين. - لا وصم من مصدرٍ واحد: الحظر يتطلّب تأكيدًا من تاجرٍ ثانٍ مستقلّ.
- المُبلِّغ تحت المراقبة: من تُناقض بلاغاتُه الواقع تنخفض سمعته آليًّا وتخرج بلاغاته من الحساب.
- سجلّ لا يُمحى: كلّ حكم يعود إلى السطر الذي سبّبه، وكلّ خطأ قابل للسحب مع إعادة حساب من تأثّر به.
- حقّ الاعتراض: مراجعة بشريّة خلال 48 ساعة — التفاصيل.