Skip to content

接口规则

协议规则

  • 传输方式:采用HTTP传输(生产环境建议HTTPS)
  • 内容类型application/json
  • 字符编码UTF-8
  • 签名算法RSA2(密钥长度2048位)
  • 签名用途:确保请求 / 响应数据的完整性(未被篡改)和真实性(确实来自平台 / 商户)
  • 密钥对:平台和商户各自持有一对密钥(私钥用于签名,公钥用于验签)

参数规范

  • 商户订单号:同一商户号下的订单号不可重复
  • 应用Id:注册进入商户后台创建app获取
  • 接口版本:当前版本固定v1.0
  • 签名类型:当前v1.0版本仅支持RSA2
  • 交易金额:支持小数点后6位
  • 枚举类型:ChainTypeEnum(链)、CurrencyTypeEnum(币种)

签名算法

签名生成的规则

1. 收集待签名参数

  • 提取请求中所有 非空参数null 或空字符串 "" 需排除)

  • 不包含 sign 字段本身(避免自签名)

  • 示请求支付系统参数如下:

    json
    {
        "mchNo": "M1751937702",
        "appId": "688acab1e4b06988f93da059",
        "mchOrderNo": "4f-2359-4995-b5b6-e3e41ccd40d8",
        "amount": 12.11,
        "currency": "USDC",
        "network": "Solana",
        "goods": {
            "goodsName": "T-Shirt",
            "goodsDetail": "A comfortable cotton t-shirt with a modern design.",
            "goodsType": "shop"
        },
        "mchUserId": "McDonald's",
        "bizCode": 0,
        "version":"v1.0",
        "signType":"RSA2"
    }

2. 参数排序

  • 参数名 ASCII 码升序 排序(字典序)
  • 示例排序后:amountappIdbizCodecurrencygoodsmchNomchOrderNomchUserIdnetworksignTypeversion

3. 拼接为待签名字符串

  • 格式:key1=value1&key2=value2&...&keyN=valueN

  • 注意:

    • 键值对直接拼接,无空格

    • 金额数值类型注意小数位

    • 必须将 Goods 转换为标准 JSON 字符串(双引号、键值对格式)

    • bizCode【Integer类型】:通道编号,不确定时不要传,由接口自动适配

    • 示例如下:

      text
      amount=12.11&appId=688acab1e4b06988f93da059&bizCode=0&currency=USDC&goods={"goodsName":"T-Shirt","goodsDetail":"A comfortable cotton t-shirt with a modern design.","goodsType":"shop"}&mchNo=M1751937702&mchOrderNo=4f-2359-4995-b5b6-e3e41ccd40d8&mchUserId=McDonald's&network=Solana&signType=RSA2&version=1.0

4. 生成签名

  • 使用 商户私钥 对上述字符串进行 RSA2 签名(SHA256 哈希 + RSA 加密)
  • 签名结果需进行 Base64 编码

5. 附加签名到请求

  • 将生成的签名放入 sign 字段,与其他参数一起发送

  • 最终请求参数包含sign

    json
    {
        "mchNo": "M1751937702",
        "appId": "688acab1e4b06988f93da059",
        "mchOrderNo": "4f-2359-4995-b5b6-e3e41ccd40d8",
        "amount": 12.11,
        "currency": "USDC",
        "network": "Solana",
        "goods": {
            "goodsName": "T-Shirt",
            "goodsDetail": "A comfortable cotton t-shirt with a modern design.",
            "goodsType": "shop"
        },
        "mchUserId": "McDonald's",
        "bizCode": 0,
        "version":"v1.0",
        "signType":"RSA2", 
        "sign":"SLvwl4CZ5AaG+ebwitK4PHtvMhqXKEOVJnpgENOdmvv3BGhEG/kQesTksDgG7MJd4SScMvXqAzCA5LX/FS3vLb4u35FB/08+9PPX4CSsFQNM6iRKvBQ1YAxMHO4lIlaJCAU+BpX8h0N/qqR8v23H8OEEYlk1vYerZmy3wTuPvsV4nVdhb3bGI73UIfHau+MOVPPcxRTiy4TCj7g+M19hK1JJdyAw5OMjpeljna98hayYj0aiTxHsl/bTI55Yc+QbyVXnZYMQ0xzvyOMH569JFM8RPhVmlxMq1N1y1dwtiFlK9gDmO/IB6SV9V22GOs5xbZ7CCrukQjSrRc0LXgQjqA=="
    }

返回码

code描述
0成功
9999异常,具体错误详见msg字段