协议规则
响应格式
成功示例
失败示例
参数规定
商户订单号
商户支付的订单号由商户自定义生成,仅支持使用字母、数字、中划线-、下划线_这些英文半角字符的组合,请勿使用汉字或全角等特殊字符,限定长度在 100 个字符内。GatePay 要求商户订单号保持唯一性(建议根据当前系统时间加随机序列来生成订单号)。重新发起一笔支付要使用原订单号,避免重复支付。交易金额
所有金额参数都采用字符串传输,精度精确到小数点后 6 位,单笔交易金额最小单位为0.0001,最大为 5000000,个人收款码最大金额为 10000。
币种类型
GatePay 支持的币种请参考支持币种章节。时间
所有时间字段,如果没有额外说明,格式都是毫秒级的Unix 时间戳。
请求头
机构 API 的请求头规范请参见 机构公共头信息。
签名
签名规范
构造签名串 我们希望商户的技术开发人员按照当前文档约定的规则构造签名串。GatePay 会使用同样的方式构造签名串。如果商户构造签名串的方式错误,将导致签名验证不通过。下面先说明签名串的具体格式。 每一行为一个参数。行尾以\n(换行符,ASCII编码值为0x0A)结束。如果参数本身以 \n 结束,也需要附加一个 \n。
请求时间戳\n请求随机串\n请求报文主体\n
签名算法
Go 语言支付回调处理
回调描述
Gate Pay 会通过 POST 的方式向回调地址发送回调报文,回调通知的请求主体中会包含 JSON 格式的通知参数,具体的通知参数列表如下:回调验签与应答
商户接收到回调通知报文后,需完成对报文的验签,并应答回调通知。 商户验签后响应字段如下:
响应 JSON 格式:
回调处理步骤
对回调进行验签步骤: 回调报文的 HTTP 请求头中会包含报文的签名信息,用于验签,具体如下:
验签需使用请求头中的
X-GatePay-Timestamp、X-GatePay-Nonce 以及请求主体中 JSON 格式的通知参数构建出验签串(验签计算参考签名算法章节),然后使用商户支付密钥计算出验签再跟 X-GatePay-Signature 值进行比较是否相等,确保接收的回调内容是来自 Gate Pay。

