DuckyPayเอกสาร

เริ่มต้นใช้งาน

รับการชำระเงินทดสอบครั้งแรกบน Polygon Amoy ในราว 15 นาที — ไม่มีเงินจริง ไม่ต้อง deploy สัญญาใด ๆ

ก่อนเริ่ม#

คุณต้องมีบัญชี DuckyPay (ฟรี ยืนยันแค่อีเมล) และกระเป๋า EVM ที่คุณควบคุมเอง — กระเป๋านั้น คือที่ที่เงินของคุณจะเข้า ทุกอย่างด้านล่างรันบน Polygon Amoy testnet ด้วย โทเคนทดสอบ จึงไม่แตะเงินจริงเลย

ห้าขั้นตอน#

  1. สร้างโปรเจกต์และเชื่อมกระเป๋ารับเงิน

    สมัครที่ app.duckypay.co แล้วสร้างโปรเจกต์ จากนั้น ตั้ง กระเป๋ารับเงิน (payout wallet) ของโปรเจกต์ — ที่อยู่ที่รับทุกการ ชำระเงิน คุณยืนยันความเป็นเจ้าของด้วยการเซ็นข้อความด้วยกระเป๋านั้น (DuckyPay ไม่เคยขอ private key ขอแค่ลายเซ็น)

    ระบบจะปฏิเสธการสร้าง charge จนกว่าจะตั้งกระเป๋ารับเงิน — เพราะไม่มีที่ให้เงินเข้า

  2. คัดลอก API key แบบทดสอบ

    ในหน้า API keys ของโปรเจกต์ คัดลอก test key (dp_test_…) test key สร้าง charge ได้บน testnet เท่านั้น และ live key บน mainnet เท่านั้น — สลับกัน ไม่ได้ รายละเอียดที่ Authentication

  3. สร้าง charge

    การเรียกที่ยืนยันตัวตนครั้งเดียวสร้าง invoice และคืน URL ของ hosted checkout จำนวนเงิน เป็นสตริงในหน่วยย่อยที่สุดของโทเคน — 5000000 คือ 5 USDC ที่ 6 decimals (SDK @duckypay/node มี toBaseUnits("5", 6) ให้ คุณจึงไม่ ต้องคำนวณเอง)

    terminal
    curl https://api.duckypay.co/v1/invoices \
      -H "x-api-key: $DUCKYPAY_API_KEY" \
      -H "content-type: application/json" \
      -d '{
        "chainId": 80002,
        "amount": "5000000",
        "paymentMode": "both",
        "reference": "order_1001"
      }'
    201 response (ตัดย่อ)
    {
      "success": true,
      "data": {
        "invoiceId": "0x2b7e…c4a1",
        "chainId": 80002,
        "mode": "both",
        "checkoutUrl": "https://pay.duckypay.co/c/0x2b7e…c4a1",
        "depositAddress": "0x9F62…7EBB",
        "token": "0x34D9…d14A",
        "amount": "5000000",
        "feeBps": 0,
        "deadline": "1789552800",
        "intent": { "…": "signed PaymentIntent for wallet mode" },
        "signature": "0x…"
      },
      "error": null
    }
  4. จ่ายบน hosted checkout

    เปิด checkoutUrl ในเบราว์เซอร์ เพราะ charge นี้สร้างด้วย paymentMode: "both" หน้า checkout จึงมีสองทาง: เชื่อมกระเป๋าบน Amoy หรือส่งโทเคนทดสอบไปที่ deposit address ที่แสดง สำหรับค่าแก๊ส ขอ Amoy POL ฟรีจาก faucet ทางการของ Polygon

  5. ยืนยันการชำระเงิน

    Poll เส้น status แบบเบาจนกว่าจะเปลี่ยนเป็น paid — หรือดีกว่านั้น ลงทะเบียน webhook แล้วรับ event invoice.paid ที่เซ็นกำกับ พร้อม reference ของคุณส่งกลับมาด้วย

    terminal
    curl https://api.duckypay.co/v1/charges/0x2b7e…c4a1/status \
      -H "x-api-key: $DUCKYPAY_API_KEY"
    
    # → { "success": true, "data": { "invoiceId": "0x2b7e…c4a1", "status": "paid" }, "error": null }

    เมื่อธุรกรรมบนเชนคอนเฟิร์ม เงินเข้ากระเป๋าคุณแล้ว; สถานะมักตามทันภายในไม่กี่นาที

ไปต่อที่ไหน#