التوثيق

أمثلة التكامل

أمثلة Flutter وBackend باستخدام APIs Shernova الفعلية.

Verification API

cURL
curl -X POST "https://api.shernova.com/v1/verifications" \
  -H "Authorization: Bearer sk_live_YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone_number":"+201012345678","client_request_id":"signup-001"}'

مفاتيح test

sk_test_ + مكالمة فائتة إلى gateway_phone_number من نفس الهاتف (بوابات حقيقية، يستهلك رصيداً).

Receipt

POST /v1/receipts/verify على الخادم — إعادة الاستخدام → 409.

Flutter SDK

تدفق تسجيل
await Shernova.init(shernovaConfig);

final session = await verifyPhone(
  context: context,
  phoneNumber: _phone.text.trim(),
  clientRequestId: 'signup-${DateTime.now().millisecondsSinceEpoch}',
);

مثال Backend (Node.js)

javascript
const res = await fetch('https://api.shernova.com/v1/verifications', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.SHERNOVA_SECRET_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ phone_number: '+201012345678' }),
});
const session = await res.json();
console.log('اتصل:', session.gateway_phone_number);

مثال Webhook Handler

تحقق من التوقيع على الجسم الخام. في Express استخدم express.raw على مسار Webhook قبل أي محلل JSON. راجع Webhooks.

راجع sdks/flutter/example/ أو pub.dev packages.

Webhooks

تحقق من التوقيع على الجسم الخام. راجع Webhooks.

الفوترة والرصيد

curl
curl "https://api.shernova.com/v1/apps/YOUR_APP_ID/billing" \
  -H "Authorization: Bearer YOUR_DASHBOARD_JWT" \
  -H "X-Shernova-Organization-Id: YOUR_ORG_ID"