跳到正文
← 使用教程

MoonPay Commerce:核对Charge、Pay Link与订单交易

链小知 · 进阶 · 核验 · 依官方文档整理

用一次性chargeId和链上signature定位已有收款,并保留少付、多付和退款边界。

开始前准备

  • 准备已有且脱敏的订单、请求或回执记录;没有实际记录时仅按文档列出待核字段。
  • 本教程依据公开资料,不登录、申请密钥、调用业务API、创建收款或执行退款。

1. 先分清一次性与可重复链接

Charge由paylinkId生成,支付成功后不能再用;普通Pay Link可以重复收款。同一paylinkId因此不等于同一订单。

从已有charge URL末尾取chargeId,记录原订单与paylinkId。官方GET /v1/charge/{chargeId}用于取回一次性收款,生产/开发环境不能混用。

检查结果:订单与chargeId一一对应;可重复Pay Link不作为唯一付款凭证。

2. 检查paylinkTx而不是只看页面

Charge查询中paylinkTx为null表示尚未产生关联交易;有交易时核paylinkTx.id、paylinkTx.paylinkId、paylinkTx.meta.transactionSignature、paylinkTx.meta.transactionStatus和paylinkTx.meta.currency。

对照requestAmount、currencySymbol与交易币种/decimals,不能把所有字符串金额都当美元。usdcAmount按文档是USDC最小单位且可能缺省,expiresAt也可能因未设置而缺省。

检查结果:空交易、可选字段与金额单位明确;未读到交易时不填SUCCESS。

3. 用signature核对关联交易

已有链上signature时,可按GET /v1/transactions/signature/{signature}的交易记录再核id、paylinkId、meta.amount、recipientPK及transactionStatus。示例成功响应是数组,不能假定总是单个对象。

查询文档列apiKey参数及认证要求;缺权限或401不等于链上未支付。本教程不调用接口,缺少原响应时只记录待核关系。

检查结果:signature、支付链接、币种和收款方匹配,未知或认证失败单列。

4. 保留二维码差额与退款边界

Charge页二维码使用deposit式流程:少付会提示补足;多付会将全部存入额转给商户,不保证自动退差额。该描述仅限此二维码流程。

官方FAQ要求买方联系商户退款,平台无法撤销点对点交易。将已有退款记录与原交易单列;未取得退款凭证时不把“已申请”写成“已退回”。

检查结果:少付、多付、申请与完成退款分别有记录或待核。

怎样确认完成

  • 形成订单、资源ID、金额、状态与未验证项的对照;保留失败原文。

常见错误与边界

  • 旧Helio域名由当前官方FAQ链接确认,但旧示例字段不保证所有收款方式相同。
  • successRedirectUrl与浏览器成功页面不代替后台交易记录。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据