# Create order + session in one call curl -X POST https://api.infraio.xyz/v1/quick-checkout \ -H "Authorization: Bearer sk_live_…" \ -H "Idempotency-Key: order_8412" \ -d '{ "amount": "1000.00", "currency": "USD", "success_url": "https://shop.example/thanks" }' # → 201 Created { "checkout_url": "https://pay.infraio.xyz/c/s_9f2…", "expires_in": 900 }
将 SDK 接入任意 Web 应用
一次 import,一次调用。以弹窗、跳转或嵌入方式打开托管结账,并以同样方式打开客户退款表单。
import { loadInfraIo } from "@lartech/infraio-checkout-js"; // Open hosted checkout from a session async function payNow(sessionKey, checkoutUrl) { const sdk = await loadInfraIo("pk_live_yourkeyhere"); sdk.checkout({ sessionId: sessionKey, checkoutUrl, mode: "popup", // "popup" | "redirect" | "embed" onSuccess: ({ sessionId }) => fulfill(sessionId), onCancel: () => showRetry(), }); }
覆盖每个状态的 webhook
使用端点密钥签名,带退避重试,可从仪表盘重放。
| 事件 | 触发时机 |
|---|---|
payment.pending | 买家已广播交易;正在等待确认。 |
payment.confirmed | 交易已达到该网络的确认阈值。 |
payment.settled | 资金已归集到你的结算钱包。 |
session.expired | 结账窗口未付款即关闭。不计费。 |
像运营团队一样运行加密货币支付
控制台的设计理念是运营控制台, 而非钱包。商户每天都会用到的四大核心界面。
订单与会话每笔结账都可追溯至一个订单、一个支付意图以及一个不可变的会话。稳定的 ID 可供您的履约流程作为关联键使用。
交易链上结算、确认数、网络费用,以及每笔支付意图的清晰状态:已支付 / 等待中 / 不足额。
退款支持部分或全额退款, 可直接退至原钱包,或向买家发送一次性链接由其填写收款地址。完整审计且可导出。
Webhook按端点的测试探测、宽限期内密钥轮换、含 6 层延迟梯度的重试队列、死信外箱(outbox) + 自助重放。
按支付基础设施标准打造,而非加密插件
HMAC 签名的 B2B API每个服务端请求均经过签名 + 时间戳(X-Client-ID、X-Timestamp、X-Signature)。每个端点都做恒定时间校验,±5 分钟重放窗口。
会话范围的结账 URL每个结账 URL 都绑定到唯一的 session_key。篡改即作废;已过期的会话无法再次使用, 清理工作进程在惰性清理 + 定时扫描中将其切换为 EXPIRED。
幂等键可安全重试。重复订单会合并为单一支付意图, 您的网络错误重试路径绝不会重复扣款或重复发币。
确定性存款地址每次结账都会预先派生专属的 EVM 存款地址,买家付款至与该订单严格绑定的地址槽位。随后资金通过链上 sweep 归集至商户的结算钱包, InfraIO 从不在热钱包中保管买家资金。