ข้ามไปยังเนื้อหาหลัก
เรียนรู้คู่มือทดสอบการชำระเงินของตัวแทนโดยไม่ใช้เงินจริง
คู่มือ

ทดสอบการชำระเงินของเอเจนต์โดยไม่ใช้เงินจริง.

12 นาที
คำตอบสั้น

Swap your API key for a sk_test_ key - that alone puts you on Base Sepolia. Fund the agent's wallet from the public Base Sepolia USDC faucet, make a real test payment with payments.create (test funds, no real money), and tunnel your local webhook through ngrok. The response shapes match live, so a flow that passes in test passes in production. Exercise the failure paths, not just the happy one.

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่ม.

  • การรวมที่ใช้งานได้ในแบบสด (หรืออย่างน้อยก็ในรูปแบบสด) - ดูที่ add-payments-to-agent
  • คีย์ API sk_test_ และความลับการลงนามทดสอบที่ตรงกันจากแดชบอร์ด
  • ngrok (หรืออุโมงค์ HTTPS ใดๆ) สำหรับการส่ง webhook ในช่วงการพัฒนา.
  • สภาพแวดล้อมการพัฒนาที่แยกต่างหาก - ตัวแปร env ที่แตกต่างกัน ฐานข้อมูลที่แตกต่างกัน (หรืออย่างน้อยตารางที่แตกต่างกัน) URL เว็บฮุคที่แตกต่างกัน
  • ความสะดวกสบายกับ คู่มือรูปแบบ webhook - คู่มือนี้สมมติว่าคุณมีตัวจัดการเพื่อทดสอบ
ขั้นตอนที่ 1 จาก 5

เปลี่ยนไปใช้กุญแจทดสอบ.

คีย์ sk_test_ ทำธุรกรรมบน Base Sepolia; คีย์ sk_live_ ทำธุรกรรมบน Base mainnet คำนำหน้าจะเลือกเครือข่าย - ไม่มีตัวแปรสภาพแวดล้อมเครือข่ายแยกต่างหาก และคีย์ทดสอบไม่สามารถย้ายเงินใน mainnet ได้ ดังนั้นสิ่งที่คุณเปลี่ยนสำหรับสภาพแวดล้อมการพัฒนาคือคีย์ (และความลับ webhook ทดสอบ).

# .env.development
# A sk_test_ key picks Base Sepolia automatically - there is no network env var.
BLOCKCHAIN0X_API_KEY=sk_test_01J9...
BLOCKCHAIN0X_WEBHOOK_SECRET=...   # the test webhook's secret, from the dashboard
ขั้นตอนที่ 2 จาก 5

เติมเงินกระเป๋าเงินของเอเจนต์จาก faucet.

USDC ทดสอบไม่มีมูลค่าเงิน แต่ทำงานเหมือน USDC ที่ใช้งานอยู่: รูปแบบการตอบสนองเดียวกัน การติดตามยอดคงเหลือเดียวกัน ไม่มีการเรียก SDK ที่สร้างมัน - คุณเติมเงินที่อยู่กระเป๋าเงินของตัวแทนจากก๊อกน้ำ USDC สาธารณะ Base Sepolia ค้นหาที่อยู่ในแดชบอร์ดหรือในหน้าสาธารณะของตัวแทน (หรืออ่านตัวแทนด้วย SDK) จากนั้นวางลงในก๊อกน้ำ

TypeScript
import { createClient } from "@blockchain0x/node";

const client = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! }); // sk_test_

// Look up the agent; its wallet address is shown in the dashboard and on the
// agent's public page. Fund THAT address from the Base Sepolia USDC faucet -
// there is no SDK call that mints test funds.
const agent = await client.agents.get("agt_123");
console.log(agent.id);
Python
from blockchain0x import Client

client = Client()  # reads BLOCKCHAIN0X_API_KEY (sk_test_)

# The agent's wallet address is in the dashboard / on its public page.
# Paste it into the public Base Sepolia USDC faucet to fund it.
agent = client.agents.get("agt_123")
print(agent["id"])
ขั้นตอนที่ 3 จาก 5

ทำการชำระเงินทดสอบจริง

เมื่อกระเป๋าเงินมีเงินทุนแล้ว ให้เรียก payments.create บนคีย์ sk_test_ ของคุณ มันเป็นการโอนจริงบน Base Sepolia โดยใช้เงินทดสอบ และมันจะส่ง webhook payment.received เช่นเดียวกับที่ mainnet จะทำ - ดังนั้นคุณจึงใช้เส้นทางโค้ดจริง ไม่ใช่การจำลอง ดูเหตุการณ์ที่เข้ามาที่ตัวจัดการที่อุโมงค์ของคุณ

TypeScript
// On a sk_test_ key this is a REAL transfer on Base Sepolia (test funds, no
// real money). It fires the payment.received webhook just like mainnet does.
const tx = await client.payments.create({
  agentId: "agt_123",
  to: "0xRecipientOnSepolia",
  amountWei: "10000", // 0.01 USDC
});

console.log(tx); // watch payment.received arrive at your webhook
Python
tx = client.payments.create(body={
    "agentId": "agt_123",
    "to": "0xRecipientOnSepolia",
    "amountWei": "10000",  # 0.01 USDC
})

print(tx)  # watch payment.received arrive at your webhook

สามสถานการณ์ที่ต้องฝึกฝนอย่างน้อย: การชำระเงินที่ถึงที่หมาย (เส้นทางที่ดี การชำระเงินที่ได้รับ), การชำระเงินที่ไม่เคยถึงที่หมาย (ชี้ webhook ไปที่ URL ที่ตายและยืนยันว่าการทำความสะอาดการปรับยอดของคุณจับงานที่ติดอยู่ - เส้นทางที่ทีมส่วนใหญ่ละเลย), และการลองใหม่ของ webhook (บังคับให้เกิด 500 ครั้งแรกและ 200 ครั้งที่สอง จากนั้นตรวจสอบว่าคุณได้ข้ามงานที่ซ้ำซ้อนหรือไม่).

ขั้นตอนที่ 4 จาก 5

ส่งผ่าน webhook ไปยังตัวจัดการในท้องถิ่นของคุณ.

การชำระเงินทดสอบส่ง webhook จริงไปยัง URL ใดก็ตามที่คุณกำหนดไว้สำหรับ webhook ทดสอบ สำหรับการพัฒนาท้องถิ่น ให้มันมีอุโมงค์ HTTPS ไปยังแล็ปท็อปของคุณ ngrok เป็นตัวเลือกที่ง่ายที่สุด; เครื่องมืออุโมงค์ย้อนกลับใด ๆ ก็ใช้ได้

# Tunnel your local webhook endpoint to a public HTTPS URL.
$ ngrok http 3000

# Forwarding   https://abc123.ngrok.app -> http://localhost:3000

# Paste the URL in the dashboard under Webhooks for your test
# environment - test and live keep separate webhook config.

การทดสอบและการใช้งานจริงใช้กุญแจแยกและการกำหนดค่า webhook แยกกัน ดังนั้นคุณจึงสามารถปล่อยให้การผลิตชี้ไปที่จุดสิ้นสุดจริงของคุณในขณะที่อุโมงค์ในท้องถิ่นของคุณจัดการเหตุการณ์ทดสอบ

ขั้นตอนที่ 5 จาก 5

ล้มเหลวอย่างรวดเร็วเมื่อกุญแจถูกกำหนดค่าไม่ถูกต้อง

เหตุการณ์การผลิตที่พบบ่อยที่สุดเกี่ยวกับคีย์ทดสอบ/สดคือความเงียบ: การปรับใช้เกิดขึ้นด้วยคีย์ทดสอบ ไม่มีการชำระเงินเข้ามา การแจ้งเตือนจะถูกส่งออกหลังจากวันทำการถัดไป ปิดกั้นนี้ที่การบูต: ปฏิเสธที่จะเริ่มหาก env และคีย์พรีฟิกซ์ไม่ตรงกัน

TypeScript
// Fail fast if test/live get mixed up.
const apiKey = process.env.BLOCKCHAIN0X_API_KEY!;
const env = process.env.NODE_ENV;

if (env === "production" && apiKey.startsWith("sk_test_")) {
  throw new Error("Test key in production environment - aborting boot.");
}
if (env !== "production" && apiKey.startsWith("sk_live_")) {
  throw new Error("Live key in non-production environment - aborting boot.");
}
Python
import os, sys

api_key = os.environ["BLOCKCHAIN0X_API_KEY"]
env = os.environ.get("ENV", "development")

if env == "production" and api_key.startswith("sk_test_"):
    sys.exit("Test key in production environment - aborting boot.")
if env != "production" and api_key.startswith("sk_live_"):
    sys.exit("Live key in non-production environment - aborting boot.")
ข้อผิดพลาดทั่วไป

ห้าข้อผิดพลาดในการทดสอบที่ทำให้เจ็บในภายหลัง

ลืมว่า Base Sepolia เป็นเครือข่ายของตัวเอง

คีย์ sk_test_ ทำธุรกรรมบน Base Sepolia ไม่ใช่ Base mainnet ผู้ตรวจสอบบล็อก ที่อยู่กระเป๋าเงิน และโทเค็นก๊าซทั้งหมดแยกจากกัน ความสับสนทั่วไปคือการคัดลอกที่อยู่ Base จริงไปยังการทดสอบ ดูว่ามันล้มเหลว และคิดว่า API เสีย Fund ที่อยู่กระเป๋าเงินของตัวแทนจากก๊อกน้ำ USDC ของ Base Sepolia และชำระเงินที่อยู่ที่มีอยู่บนเครือข่ายนั้น.

ไม่ทดสอบเส้นทางการล้มเหลว

ทีมส่วนใหญ่ทดสอบเส้นทางที่ดี - การชำระเงินที่ทำให้เกิด payment.received - จากนั้นส่งและพบภายหลังว่าทางที่ไม่ได้ชำระเงินของพวกเขาเสียหาย ทดสอบมัน: ชี้ webhook ไปที่ URL ที่ตายแล้วและยืนยันว่าการตรวจสอบของคุณจับงานที่ติดอยู่ได้ บังคับให้เกิด 500 จากตัวจัดการของคุณและตรวจสอบว่าการลองใหม่เป็น idempotent และตรวจสอบว่าการสร้าง payments.create's 503 (ตัวเชื่อมต่อเชนไม่ได้เชื่อมต่อ) ได้รับการจัดการ สภาพแวดล้อมการทดสอบมีราคาถูก; การดีบักในผลิตภัณฑ์มีราคาแพง

Webhook URL ยังคงชี้ไปที่ ngrok ในการผลิต

การเปลี่ยนพรีฟิกซ์คีย์นั้นจำง่าย; การอัปเดต URL ของ webhook นั้นลืมง่าย หากคุณไปใช้งานจริงโดยที่ URL ยังคงชี้ไปที่อุโมงค์ ngrok จากแล็ปท็อปของคุณ การชำระเงินผลิตภัณฑ์ครั้งแรกจะส่ง webhook ไปยังช่องว่าง ถือว่าการเปลี่ยน URL ของ webhook เป็นส่วนหนึ่งของรายการตรวจสอบการปรับใช้ ไม่ใช่การตั้งค่าเพียงครั้งเดียว

เชื่อถือเวลาทดสอบเป็นตัวแทนของเวลาจริง

Base Sepolia ไม่ทำงานเหมือนกับ Base mainnet - การตั้งเวลาและความแออัดของบล็อกแตกต่างกัน อย่าใช้ testnet เพื่อทดสอบความสามารถในการประมวลผลของ mainnet และอย่าสมมติว่าความล่าช้าของ testnet ของคุณคือสิ่งที่คุณจะเห็นในผลิตภัณฑ์ เมื่อคุณต้องการตัวเลขจริง ให้รันการทดสอบ mainnet ขนาดเล็กด้วยคีย์ sk_live_

ทิ้งอุปกรณ์ทดสอบในฐานข้อมูลที่แชร์

หากสภาพแวดล้อมการพัฒนาและการผลิตของคุณแชร์ฐานข้อมูล (อย่า), เหตุการณ์ทดสอบจะอยู่ในตารางเดียวกับเหตุการณ์จริงและทำให้การกำจัด idempotency ของคุณเสียหาย (พรีฟิก ID ของเหตุการณ์จะแตกต่างกันแต่แถวจริง) อย่างน้อยแยกตาราง webhook_events ต่อสภาพแวดล้อม ดีกว่า: แยกฐานข้อมูลโดยสิ้นเชิง นี่คือหนึ่งในกฎที่ดูเหมือนจะมากเกินไปจนกว่าจะมีปัญหา

ขั้นตอนถัดไป

เมื่อวงจรการทดสอบอยู่ในวงจรการพัฒนาของคุณ

เมื่อมีวงจรการทดสอบที่มีสุขภาพดีอยู่แล้ว งานที่เหลือส่วนใหญ่จะเป็นการเสริมความแข็งแกร่ง: การจัดการ webhook ที่เชื่อถือได้ภายใต้ภาระงาน, รายการตรวจสอบความปลอดภัยขั้นสุดท้าย, และการย้ายจากผู้ให้บริการการชำระเงินก่อนหน้าที่คุณอาจกำลังใช้งานอยู่

เอกสารอ้างอิงทั้งหมดที่ docs.blockchain0x.com. รายละเอียด Testnet: พจนานุกรมของ Base chain. พื้นผิวผลิตภัณฑ์: Payment API.

ตรวจสอบล่าสุด: 2026-05-15. เผยแพร่ภายใต้ CC BY 4.0.

ทดสอบก่อนที่คุณจะส่งมัน.

Sandbox เต็มรูปแบบ: คีย์ทดสอบ, Base Sepolia, วงจรชีวิตที่จำลองได้ ฟรี