مرکزی مواد پر جائیں
ShieldID

کوئیک اسٹارٹ

شناخت کی تصدیق کا کوئیک اسٹارٹ۔

sandbox کلید سے پہلے دستخط شدہ ویب ہک تک، ترتیب وار۔ ہر مرحلے کی ایک کام کرنے والی مثال ہے — اسے کاپی کریں، اپنی کلید اور URLs بدلیں، اور چلائیں۔

مرحلہ وار

سات مراحل، ایک دوپہر۔

  1. sandbox کلید حاصل کریں

    Sandbox کلیدیں (سابقہ vk_sand_) درخواست پر جاری کی جاتی ہیں جب تک خود سے سائن اَپ کی سہولت تیار کی جا رہی ہے۔ رابطہ فارم کے ذریعے درخواست کریں — زیادہ تر درخواستوں پر اسی کاروباری دن کارروائی ہو جاتی ہے۔ Sandbox سیشنز کا کبھی بل نہیں بنتا، اس لیے شروع کرنے کے لیے انتظار کی کوئی وجہ نہیں۔

  2. اپنا پہلا سیشن بنائیں

    ایک ہی کال۔ ایک return_url بھیجیں (جہاں درخواست گزار مکمل کرنے کے بعد پہنچتا ہے) اور ایک webhook_url (جہاں دستخط شدہ نتیجہ بھیجا جاتا ہے)۔ آپ کو واپس ایک session_id اور ایک verification_url ملتا ہے۔

    bash
    curl -X POST https://api.shieldid.ca/v1/sessions \
      -H "X-Api-Key: vk_sand_your_key" \
      -H "Content-Type: application/json" \
      -d '{
        "return_url": "https://yourapp.example/verified",
        "webhook_url": "https://yourapp.example/hooks/shieldid",
        "expected_name": "Jordan Smith",
        "locale": "en",
        "metadata": { "application_id": "app_9182" }
      }'

  3. درخواست گزار کو لنک دیں

    verification_url کھولیں تو آپ کو ہوسٹڈ صفحہ نظر آئے گا۔ ڈیسک ٹاپ براؤزر پر یہ ایک QR کوڈ دکھاتا ہے — اسے اسکین کرنے سے وہی لنک فون پر پہنچ جاتا ہے، جہاں دستاویز کی اصل تصویر، لائیونیس چیلنج اور سیلفی کا عمل ہوتا ہے۔ ابھی اپنے فون پر آزما کر دیکھیں۔

  4. ویب ہک اینڈ پوائنٹ بنائیں

    webhook_url کو ایسے روٹ کی طرف رکھیں جو POST قبول کرے، خام ریکویسٹ باڈی پڑھے (دستخط جانچنے کے لیے آپ کو یہ بغیر پارس کیے درکار ہے)، اور 2xx اسٹیٹس لوٹائے۔ اس کے علاوہ کچھ بھی ہو تو ShieldID ڈیلیوری کو تین بار تک دوبارہ آزماتا ہے۔

    javascript
    import express from "express";
    const app = express();
    
    app.post("/hooks/shieldid", express.raw({ type: "application/json" }), (req, res) => {
      // Verify the signature before you trust this body — see the next step.
      console.log("Received a webhook:", req.body.toString());
      res.status(200).send("ok");
    });
    
    app.listen(3000);

  5. دستخط کی تصدیق کریں

    ویب ہک باڈی پر اس وقت تک عمل نہ کریں جب تک آپ جانچ نہ لیں کہ وہ واقعی ShieldID کی طرف سے ہے۔ اپنے ویب ہک سیکرٹ کے ساتھ خام باڈی پر HMAC-SHA256 نکالیں اور اس کا X-Bio-Signature ہیڈر سے موازنہ کریں۔

    javascript
    import crypto from "node:crypto";
    
    function isValidShieldIdSignature(rawBody, signatureHeader, secret) {
      const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
      const provided = signatureHeader || "";
      const a = Buffer.from(expected, "hex");
      const b = Buffer.from(provided, "hex");
      return a.length === b.length && crypto.timingSafeEqual(a, b);
    }
    
    // rawBody must be the exact, unparsed request body
    app.post("/hooks/shieldid", express.raw({ type: "application/json" }), (req, res) => {
      const ok = isValidShieldIdSignature(req.body, req.headers["x-bio-signature"], process.env.SHIELDID_WEBHOOK_SECRET);
      if (!ok) return res.status(401).send("invalid signature");
    
      const result = JSON.parse(req.body);
      // result.session_id, result.status, result.checks, …
      res.status(200).send("ok");
    });

  6. نتیجہ پڑھیں

    ویب ہک پے لوڈ میں وہ سب کچھ پہلے سے موجود ہے جو آپ کو چاہیے۔ اگر آپ نتیجہ خود حاصل کرنا چاہیں — مثلاً ری ڈائریکٹ کے بعد — تو نتیجے کے اینڈ پوائنٹ کو براہِ راست کال کریں۔

    bash
    curl https://api.shieldid.ca/v1/sessions/ses_9f2c1a/result \
      -H "X-Api-Key: vk_sand_your_key"
    
    # → { "session_id": "ses_9f2c1a", "status": "VERIFIED", "checks": { "document": "PASS", … }, … }

  7. FAILED اور دوبارہ کوشش کو سنبھالیں

    جو سیشن FAILED پر پہنچتا ہے اس میں failure_reason موجود ہوتا ہے۔ درخواست گزار کو کوئی کارآمد پیغام دکھائیں۔ جلد آ رہا ہے: FAILED سیشن کو PENDING پر ری سیٹ کرنے کے لیے دوبارہ کوشش۔ فی الحال FAILED کو حتمی حالت سمجھیں اور اگر درخواست گزار دوبارہ کوشش کرنا چاہے تو نیا سیشن بنائیں۔

سوئچ آن کرنے سے پہلے

پروڈکشن پر جائیں۔

ریکویسٹ کی شکل sandbox اور پروڈکشن کے درمیان کبھی نہیں بدلتی — صرف کی بدلتی ہے۔ کسی حقیقی درخواست گزار کو vk_live_ سیشن سے گزارنے سے پہلے ان باتوں کی تصدیق کر لیں۔

  • vk_sand_ کی کو vk_live_ کی سے بدل دیں۔ ریکویسٹ میں اور کچھ نہیں بدلتا۔
  • webhook_url کو ایک حقیقی، ہمیشہ چلنے والے اینڈ پوائنٹ کی طرف رکھیں جو دستخط کی تصدیق کرتا ہو — کسی ریکویسٹ بن یا لیپ ٹاپ کی طرف نہیں۔
  • اپنی ایپ میں تینوں حتمی حالتوں کو سنبھالیں: VERIFIED، FAILED اور EXPIRED، صرف کامیاب راستے کو نہیں۔
  • تصدیق کر لیں کہ آپ کا return_url ری ڈائریکٹ پر ShieldID کے شامل کیے گئے session_id اور status کوئری پیرامیٹرز کو پڑھتا ہے۔
  • GET /v1/pricing/{country} یا قیمتوں کے صفحے سے موجودہ قیمتیں دیکھ لیں تاکہ پروڈکشن کے چارجز حیران نہ کریں۔
  • sandbox کیز کو ہر اس چیز سے دور رکھیں جس تک کوئی حقیقی درخواست گزار پہنچ سکتا ہو — sandbox سیشن مفت ہوتا ہے کیونکہ وہ حقیقی نہیں ہوتا۔

سوالات

کوئک اسٹارٹ FAQ۔

شروع کریں

پہلا مرحلہ ابھی چلائیں۔

sandbox کلید کی درخواست کریں، پہلا cURL کمانڈ ٹرمینل میں پیسٹ کریں، اور آپ پہلے ہی زیادہ تر انضمامات سے آگے ہیں۔