跳到正文

商户 API

x402-paysdk/merchant 的认证、refs、订单、退款、收据、notify、交易历史和对账 API。

TypeScript
import { MerchantClient } from 'x402-paysdk/merchant';

该入口只能运行在后端,负责 bearer credential、notify HMAC key、商户控制的钱包 signer 和业务证据。

MerchantClient

TypeScript
const client = new MerchantClient({ gateway: 'https://pay.example.com', apiKey: process.env.X402_API_KEY!, notifyHmacKey: process.env.X402_NOTIFY_KEY, notifyHmacKeyId: process.env.X402_NOTIFY_KEY_ID, notifyNonceStore, merchantWalletSigner, payTo, network: 'base'});
参数用途
gateway规范网关 origin
apiKey认证请求所需 bearer key
notifyHmacKey, notifyHmacKeyId当前 notify credential
notifyNonceStore高层 notify 验证使用的原子 replay store
merchantWalletSigner反向 x402 退款使用的商户 signer
payTo, network商户操作和退款的默认值

client.request<T> 只允许同源绝对 path,不能逃离配置的 gateway origin。

商户注册和 key

函数用途
createMerchantChallenge请求 payTo 所有权挑战
merchantChallengeSigningMessage生成规范 EIP-191 文本
merchantChallengeTypedData生成 EVM EIP-712 typed data
registerMerchant提交签名并获取一次性 credential
getMerchantProfile读取已认证 profile
rotateMerchantKey轮换 apiKeynotifyHmacKey
revokeOldMerchantKey撤销旧的租户 key

注册返回 merchantIdapiKeynotifyHmacKeynotifyHmacKeyIdpayTo。原始 key 必须立即保存。

Ref 管理

createPaymentRefgetReflistRefsrevokePaymentRefrevokePayTo 使用 MerchantClient 中的 gateway 与 API key。创建参数与 receiver API 相同,但不再重复 credential 字段。

可选 order mode

函数主要参数
createOrderpayTo、amount、asset、network、orderId、description、metadata、expiry
getOrderclient、orderId
listOrdersstatus、limit、cursor
cancelOrderclient、orderId
createOrderRefundorderId、amount、refundId、originalPaymentRef、expiry
getRefundStatusclient、orderId、refundId
listRefundsclient、orderId

Order status 包括 unpaid | pending | paid | confirmed | failed | cancelled | partially_refunded | fully_refunded。网关关闭 order mode 时对应路由不可用。

退款

refund(client, options) 使用商户钱包发起反向 x402。Order mode 会先创建绑定的 refund intent;无状态模式需要 originalPayer、随机 refundId、network、原始 receipt hash、原始金额、累计退款、sequence 和 FULL | PARTIAL 结果。

rejectRefund 用于生成 signed REJECTED receipt,不移动资金,也不会调用 facilitator。

收据与链验证

函数用途
verifyReceipt验证 payment receipt 和链转账
verifyRefundReceipt验证 refund receipt 和反向转账
verifySignedPaymentReceipt本地验证签名与预期字段
verifySignedRefundReceipt本地验证退款签名与上下文
paymentReceiptContentHash规范 payment receipt ref
refundReceiptContentHash规范 refund receipt ref
getTxStatus有界交易状态
getPaymentHistory有界 Transfer log 历史

本地签名验证证明网关 attestation,网络验证证明链上终局性。

Notify

函数防重放用途
verifySettlementNotify验证 HMAC、header/body 绑定、schema、timestamp 和 nonce
verifyNotifySignature验证 envelope,不解析 event body
notifyMiddleware使用 raw body 的 Express-compatible middleware
createMemoryNotifyNonceStore仅单进程测试与本地开发
verifyNotifySignatureWithoutReplayProtection仅诊断,不能保护 side effect

多实例生产系统必须实现共享原子 NotifyNonceStore.putIfAbsent(key, expiresAt)

对账

reconcile(client, options) 接收 payTo、fromBlock、有界 limit、付款/退款收据、trusted signer、确认数和 verifyChain。返回 incoming/outgoing evidence、anomalies、lastBlock 和可选 cursor,不会自动修改商户订单。

异常包括无收据转账、无转账收据、签名/链验证失败、重复收据、退款证据不匹配、累计退款不一致和超额退款。