- x402 总览文档:https://docs.cdp.coinbase.com/x402/docs/overview
- x402 开源示例:https://github.com/coinbase/x402
- 支付链路在 Base 主网 完成,资产使用 USDC;
- 必须使用持币钱包的 EVM 私钥 生成
X-PAYMENT签名头; - 所有 API 均位于
https://platform.acedata.cloud域名下,Authorization头需携带 Platform Token。
一、准备工作
1. 查看订单并记录收款信息
登录控制台 https://platform.acedata.cloud,在订单列表或订单详情页可以看到需要支付的订单。订单详情会展示:- 订单 ID(例如
7744945e-5e77-4dcc-a9c4-528692d17b34); - 收款地址
pay_to(也会在 402 响应中返回,建议以页面信息为准)。
pay_to 地址,后续签名时需要保证资金发送到该地址。
2. 准备付款钱包与资金
- 准备一个支持 Base 主网的 EVM 钱包,并导出待使用的私钥;
- 在 Base 主网充值足额 USDC(支付金额单位为 6 位小数的最小单位);
- x402 Facilitator 会代付网络费用,付款钱包只需保留足够的 USDC;
- 私钥仅用于本地签名,请妥善保管,避免在浏览器或不可信环境暴露。
3. 创建 Platform Token
Platform Token 用于调用平台 API,与登录后浏览器使用的用户 Token 功能类似,但不会过期。请按照以下步骤创建:- 打开控制台页面 https://platform.acedata.cloud/console/platform-tokens;
- 点击「创建 Token」,根据提示填写备注信息后生成;
- 复制生成的 Token(例如
platform-v1-xxxx),妥善保存为platform_token。
后续所有 API 调用 header 中都需要包含:
4. 请求基础信息
- API 基础域名:
https://platform.acedata.cloud - 支付请求路径:
/api/v1/orders/{order_id}/pay/ - 请求和响应均使用 JSON,编码为 UTF-8。
二、支付流程总览
- 发起支付请求:无
X-PAYMENT头的首次POST请求,触发平台返回 402 Payment Required; - 读取支付要求:解析 402 响应中的
accepts数组,确认network为base、asset为 USDC、payTo与订单页面一致; - 生成
X-PAYMENT:使用付款钱包私钥、响应体中的要求、Facilitator 返回的 EIP-712 域等信息生成签名(通常借助官方 SDK 完成); - 携带签名重试:将
X-PAYMENT头加入同一路径请求,平台验证成功后返回 200; - 解析结果:读取响应头
X-PAYMENT-RESPONSE,可获取链上交易哈希、实际扣款金额等信息用于对账。
三、接口交互示例
1. 首次请求(触发 402)
network:必须是base(Base 主网);asset:Base USDC 合约地址(示例为官方主网合约);maxAmountRequired:本次支付所需的 USDC 原子单位(1 USDC = 1,000,000 atomic units);payTo:平台收款地址,应与订单详情页面一致;extra:签名所需的 EIP-712 域信息等。
2. 生成 X-PAYMENT
常见做法为使用官方 SDK(如 x402-js、x402-fetch、x402.clients 等):
- 将付款钱包私钥转换为账户对象;
- 记录 402 响应中的
accepts数据,选择network == "base"的支付选项; - 调用 SDK 提供的签名函数生成 Base64 编码的
X-PAYMENT字符串(无需客户端直连 facilitator;平台后端会负责调用 facilitator 完成 verify/settle); - 建议校验
maxAmountRequired是否在可接受范围,超过则提醒用户充值。
extra.eip712 提供的域信息构造 EIP-712 结构体后进行签名。
3. 携带签名重试
X-PAYMENT-RESPONSE 可使用 SDK 的解码函数获取链上交易哈希、支付网络、付款人地址等数据,用于业务入账或展示。
四、多语言示例代码
以下示例均假设通过环境变量或配置文件注入:ACE_PLATFORM_TOKEN:Platform Token;ACE_X402_ORDER_ID:订单 ID;ACE_X402_PRIVATE_KEY:付款钱包私钥(带0x前缀)。
1. Axios(TypeScript)
2. Fetch(JavaScript)
3. Python requests
4. Python httpx(异步)
示例仅演示关键调用,生产环境请补充异常处理、重试策略、日志与安全控制。
五、支付成功后的验证
- 控制台验证:访问订单详情页
https://platform.acedata.cloud/console/orders/{order_id},若页面显示「支付成功」或订单状态已变为已支付/已完成,即代表链上结算完成。 - API 验证:调用
GET https://platform.acedata.cloud/api/v1/orders/{order_id}/并携带Authorization: Bearer {platform_token},检查响应中的state字段(PAID或FINISHED表示支付成功)。 - 回传头部:在支付成功的响应中读取
X-PAYMENT-RESPONSE,可解析出链上交易哈希作为最终凭证;建议在系统日志中保存该信息以便对账。
六、常见问题排查
- 仍然返回 402:确认付款地址在 Base 主网拥有足够 USDC,检查
maxAmountRequired是否超出钱包余额或自定义限额。 - 签名失败:确保私钥带
0x前缀;签名时严格使用响应中的extra(EIP-712 域)和payTo,不要改动字段顺序。 - 网络不匹配:
accepts中可能存在多条要求,请选择network === "base"的选项。 - 缺少
X-PAYMENT-RESPONSE:说明支付未实际扣款,可根据响应体中的错误重新发起;如遇链上拥堵,请稍后重试。 - 平台 Token 无效:确认 Token 未被删除,并以
platform-v1-前缀开头;若接口返回 401,可在控制台重新生成。
七、更多帮助
- 在线文档与常见问题:平台控制台顶部导航「文档」。
- 提交工单与客服支持:https://platform.acedata.cloud/support
- 社区交流:Discord https://discord.gg/f9GRuKCmRc,X(Twitter)https://x.com/acedatacloud
- 其他渠道:邮箱
office@acedata.cloud、office@germey.tech;公司地址 651 N Broad St, Suite 201, Middletown, Delaware, USA;WeChat 客服请在支持页面查看最新二维码。 - 反馈建议:欢迎通过上述任意渠道告诉我们改进需求。

