在线 x402 测试
在线请求 x402 沙盒资源,查看 HTTP 402 响应中的付款要求,并验证 Agent Payments 接入流程。
x402 是基于 HTTP 的机器支付协议。资源服务器先返回 402 Payment Required 和 PAYMENT-REQUIRED 响应头。付款方签署授权后,再携带 PAYMENT-SIGNATURE 请求同一资源。
检查付款要求
下面的面板只读取你填入的资源地址实际返回的 402 挑战。网络、资产、金额、收款地址和付款方案都以响应为准,面板不预设 Base Sepolia、USDC 或 exact。它不会在浏览器中持有私钥、创建 Intent 或付款。
在线 x402 测试
请求你填入的资源地址,查看它实际返回的 HTTP 402 付款挑战。
这是 Agent 传给 x402Fetch 的地址。
此页面只检查卖方的付款挑战;实际付款请使用 @stableops/agent-sdk 和签名器 Sidecar。
const result = await agent.x402Fetch("https://x402-base-sepolia-resource.vercel.app/api/x402/resource")成功读取挑战不代表资源或报价可信。在支付前,必须把响应中的网络、资产、金额、收款地址和付款方案与预期配置逐项核对。这个面板不会连接钱包或发起付款。
在 Agent 中请求资源
完整付款必须运行在服务端 Node.js Agent 中:
import { SettlementUnknownError } from '@stableops/agent-sdk'
try {
const result = await agent.x402Fetch(process.env.X402_RESOURCE_URL!, {
idempotencyKey: 'sandbox-resource:demo-1',
})
if (result.status === 'paid') {
const body = await result.response.text()
const payment = await agent.getPayment(result.intentId)
console.log({ body, paymentStatus: payment.status })
} else if (result.status === 'awaiting_approval') {
console.log(`等待审批:${result.intentId}`)
} else {
console.log(await result.response.text())
}
} catch (error) {
if (error instanceof SettlementUnknownError) {
console.error(`结算结果未知,只能核对原 Intent:${error.intentId}`)
}
throw error
}同一笔购买重试时必须复用相同幂等键。审批通过后,应把原 intentId 作为 resumeIntentId 恢复,而不是创建新 Intent。
status: 'paid' 表示付费 HTTP 请求得到了可靠响应,不保证控制面已经确认 settled。最终状态以 agent.getPayment(intentId)、管理客户端查询或签名 Webhook 为准。
完整的策略、预算、钱包和签名器配置见快速开始。
这篇文档怎么样?
最后更新