Checkify
เอกสารสำหรับนักพัฒนา

ยืนยันบน backend ของคุณ

หลัง embed บนเบราว์เซอร์เสร็จ เซิร์ฟเวอร์ของคุณต้องยืนยันผลลัพธ์ด้วย site API key ก่อนอนุญาตการสมัคร ชำระเงิน หรือการดำเนินการที่ปกป้อง

1. สร้าง site API key

ในแดชบอร์ดธุรกิจ เปิด นักพัฒนา และสร้าง site API key สำหรับไซต์ที่คุณกำลังเชื่อมต่อ เก็บไว้ในตัวแปรสภาพแวดล้อมของเซิร์ฟเวอร์เท่านั้น — ห้ามส่งไปยังเบราว์เซอร์

2. อ่าน reference จากแบบฟอร์มของคุณ

embed SDK เขียน request_id ลงในฟิลด์ที่ซ่อน (การเชื่อมต่อรุ่นเก่าอาจยังส่ง poll token — ทั้งสองแบบใช้ได้)

// Example POST body from your frontend form
{
  "email": "user@example.com",
  "checkify_token": "56a57761-ff5b-42f0-9c97-6c13e223e017"
}

3. เรียก verify

POST https://checkify.me/v1/qr/results/verify
Authorization: Bearer YOUR_SITE_API_KEY
Content-Type: application/json

{
  "request_id": "56a57761-ff5b-42f0-9c97-6c13e223e017",
  "required_claims": ["human_verified"],
  "consume": true
}

คุณยังส่ง token แทน request_id.

ตัวอย่าง FastAPI

from checkify_server import Checkify

checkify = Checkify(api_key=os.environ["CHECKIFY_SITE_API_KEY"])

@app.post("/signup")
async def signup(email: str, checkify_token: str):
    result = checkify.verify_human(request_id=checkify_token)
    if not result.get("success") or not result.get("approved"):
        raise HTTPException(status_code=403, detail="Human verification required")
    # continue signup...

ตัวอย่าง Express

import { Checkify } from "@checkify/server";

const checkify = new Checkify({ apiKey: process.env.CHECKIFY_SITE_API_KEY });

app.post("/signup", async (req, res) => {
  const result = await checkify.verifyHuman({
    requestId: req.body.checkify_token,
  });

  if (!result.success || !result.approved) {
    return res.status(403).json({ error: "Human verification required" });
  }

  // continue signup...
});

การจัดการ response

สนามความหมาย
successtrue เมื่อการยืนยันเสร็จและตรงตามข้อกำหนด
statuscompleted หรือ pending
approved_claimsClaims ที่ Checkify อนุมัติ เช่น human_verified: true
signed_resultSigned payload ไม่บังคับสำหรับ audit trail

คำเตือนด้านความปลอดภัย

ถือว่าฟิลด์ที่ซ่อนเป็น reference ที่ไม่น่าเชื่อถือ ไม่ใช่หลักฐาน ต้องยืนยันด้วย site API key บนเซิร์ฟเวอร์ก่อนให้สิทธิ์เข้าถึง ใช้ consume: true สำหรับการดำเนินการครั้งเดียว เช่น สมัครสมาชิกหรือรีเซ็ตรหัสผ่าน