接口文档

签名算法、支付接口、代付接口完整说明

签名算法 1.0

1. 协议规则

传输方式采用 HTTP 传输
提交方式采用 POST / GET 方式提交
内容类型application/x-www-form-urlencoded
字符编码UTF-8
签名算法MD5

1.1 参数规范

交易金额:默认为人民币交易,单位为,参数值不能带小数。

1.2 安全规范 · 签名算法

签名生成的通用步骤如下:

  1. 第一步

    设所有发送或者接收到的数据为集合 M,将集合 M 内非空参数值的参数按照参数名 ASCII 码从小到大排序(字典序),使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串 stringA。

    特别注意
    • 参数名 ASCII 码从小到大排序(字典序)
    • 如果参数的值为空不参与签名
    • 参数名区分大小写
    • 验证调用返回或支付中心主动通知签名时,传送的 sign 参数不参与签名
    • 支付中心接口可能增加字段,验证签名时必须支持增加的扩展字段
  2. 第二步

    在 stringA 最后拼接上 key(即 StringA + "&key=" + 私钥)得到 stringSignTemp 字符串,并对 stringSignTemp 进行 MD5 运算,再将得到的字符串所有字符转换为大写,得到 sign 值 signValue。

下单接口

1.1 统一下单接口 · 标准

接口流程:机构调用预下单接口生成跳转支付订单页面。

POST/cashier/apply/appCreateOrder

请求参数

字段名称标识必填示例值备注
交易商户号orgMerCodeM10000000商户号
应用IDAPPIDOaad3f9ac7cff4ccf8235b4ed30c12b51应用 APPID
交易终端号orgTermNoM0000终端号
交易订单号orgTraceM202412020020070001下游商户生成的订单号
交易金额transAmtM100支付金额,单位分
交易设备IPorgDeviceIpM203.214.26.222上送用户真实交易设备 IP
交易设备orgdeviceOAndroid交易设备端
商品标题titeM网络购物商品标题
商品描述subjectM网络购物商品描述信息
异步回调地址notifyUrlMhttp://shop.xx.com/notify.htm支付结果异步回调 URL
请求时间timeoutMinutesM20240515121300yyyyMMddHHmmss 格式
接口版本orgBasestationM2.7固定:2.7
签名signM2B8C85E8…详见签名算法

响应参数

字段名称标识必填示例值备注
返回状态码retCodeM00-处理成功,其他-处理有误
返回信息retMsgO签名失败具体错误原因

以下字段在 retCode=0 时有返回

字段名称标识必填示例值备注
交易订单号prodTraceMLF8202412020020070001电商场景系统订单号
支付表单地址payUrlMhttps://h5.alipay.com/…返回支付表单内容
交易商户号orgMerCodeO10000000返回交易商户号
交易金额transAmtO100返回交易金额
签名signM2B8C85E8…签名信息

响应示例

{
  "prodTrace": "LF8202412020020070001",
  "payUrl": "http://170.33.8.116:8182/payurl?orgTrace=Pnull2024021211314049724732&transAmt=888.99",
  "retCode": "0",
  "sign": "3251661E4B84AAB6BAA1A6A025F40036"
}

1.2 查询订单接口 · 标准

接口流程:业务系统通过查询支付订单接口获取最新的支付订单状态,并根据状态结果进一步处理业务逻辑。

POST/cashier/trade/appCreatequery

请求参数

字段名称标识必填示例值备注
交易商户号orgMerCodeM10000000分配的商户号
电商订单号prodTraceMLF8202412020020070001与 orgTrace 二者传一即可
商户订单号orgTraceM20160427210604000490与 prodTrace 二者传一即可
是否执行回调executeNotifyOtruetrue 则支付中心会再次向商户发起回调
接口版本orgBasestationM2.7固定:2.7
请求时间timeoutMinutesM20240515121300yyyyMMddHHmmss 格式
签名signM2B8C85E8…详见签名算法

响应参数(retCode=0 时)

字段名称标识必填示例值备注
交易商户号orgMerCodeM10000000拉单分配商户号
应用IDappIdMaad3f9ac…应用 APPID
交易终端号orgTermNoM0000拉单分配的终端号
电商订单号prodTraceMLF8202412020020070001系统订单号
交易订单号orgTraceM202412020020070001下游商户订单号
交易金额transAmtM100单位分
订单状态statusM2-2 已关闭, 0 生成, 1 支付中, 2 成功, 3 业务完成, 4 已退款
签名SignM2B8C85E8…详见签名算法

响应示例

{
  "retCode": "0",
  "sign": "35CD50041BCC2D6D4F445C2F6F22D36B",
  "orgMerCode": "20000010",
  "appId": "aad3f9ac7cff4ccf8235b4ed30c12b51",
  "orgTermNo": "8045",
  "prodTrace": "LF8202412070454420001",
  "orgTrace": "TEST1733518477095",
  "transAmt": "100",
  "status": "2",
  "paySuccTime": "1733518845000"
}

1.3 支付结果通知

当订单支付成功时,支付中心会向商户的 notifyUrl 地址发起回调。该链接通过统一下单接口的 notifyUrl 参数设置。

通知参数

字段名称标识必填示例值备注
交易商户号orgMerCodeM10000000拉单分配商户号
应用IDappIdMaad3f9ac…应用 APPID
交易终端号orgTermNoM0000终端号
电商订单号prodTraceMLF8202412020020070001系统订单号
交易订单号orgTraceM202412020020070001商户订单号
交易金额transAmtM100单位分
付款金额incomeO100用户实际付款金额,单位分
订单状态statusM2同查询接口状态说明
支付成功时间paySuccTimeM1733518845000精确到毫秒
通知类型backTypeM11-前台通知,2-后台通知
请求时间timeoutMinutesM20240515121300yyyyMMddHHmmss
签名signM2B8C85E8…详见签名算法
回调响应

业务系统处理后同步返回给支付中心,返回字符串 success 表示成功,返回非 success 则处理失败,支付中心会再次通知(频率 60/120/180/240/300 秒)。返回字符串必须是小写,且前后不能有空格。

代付接口

1. 申请代付

商户通过代付接口发起代付申请,支付系统收到请求后同步返回申请结果,申请成功并不代表代付成功。确定代付结果的方式:

  1. 发起代付时传递代付结果回调地址,支付系统处理完成后向该地址发起通知
  2. 商户系统主动发起代付查询,以查询到的最终结果确定代付是否成功

注意:商户访问该接口需要申请 IP 白名单。

POST{payUrl}/agentpay/apply

请求参数

字段名变量名必填类型示例值描述
商户IDmchIdString(30)1000000010支付中心分配的商户号
商户代付单号mchOrderNoString(30)A201907011234商户代付单号
代付金额amountint1000单位分
账户属性accountAttrString(2)00-对私, 1-对公,默认对私
银行名称bankNameString(128)中国工商银行收款卡银行名称
收款人姓名accountNameString(64)张三收款人姓名
收款人卡号accountNoString(64)622848…收款人卡号
开户行省份provinceString(32)北京市开户行所在省份
开户行市cityString(32)北京市开户行所在市
联行号bankNumberString(64)联行号
代付回调URLnotifyUrlString(128)代付结果回调 URL
备注remarkString(128)备注
扩展域extraString(128)扩展域
请求时间reqTimeString(30)20190723141000yyyyMMddHHmmss
接口版本versionString(3)1.0固定:1.0
签名signString(32)C380BEC2…详见签名算法

响应参数(retCode=0 时)

字段名变量名必填类型示例值描述
代付订单号agentpayOrderIdString(32)T201990131313代付订单号
状态statusString(2)20-待处理, 1-处理中, 2-成功, 3-失败, 4-待人工处理
手续费feeString(30)10单位分
转账提示transMsgString(128)转账提示
扩展域extraString(128)扩展域
签名signString(32)C380BEC2…详见签名算法

2. 代付确认

当商户通过接口发起代付请求后,如果商户开启代付二次确认,支付平台会向商户配置的代付确认地址发起请求,等待商户系统返回确认结果。

POST商户配置的二次确认地址

请求参数

字段名变量名必填类型示例值描述
商户订单号mchOrderNoString(32)M201990131313商户订单号
金额amountint10代付发起金额,单位分
响应说明

返回 ok 表示确认该代付订单正确存在;返回 fail 表示确认不存在;返回其他或无响应则支付平台每延迟 10 秒再发请求(最多 3 次)。返回字符串必须小写,前后不能有空格和换行。返回 ok 则继续执行代付,否则代付退回商户。

3. 查询代付订单

商户通过该接口查询代付订单结果,并根据状态结果进一步处理业务逻辑。

POST{payUrl}/agentpay/query_order

请求参数

字段名变量名必填类型示例值描述
商户IDmchIdString(30)1000000010商户号
商户订单号mchOrderNoString(32)M1000000010与代付订单号二选一
代付订单号agentpayOrderIdString(32)T1000000010与商户订单号二选一
请求时间reqTimeString(30)20190723141000yyyyMMddHHmmss
接口版本versionString(3)1.0固定:1.0
签名signString(32)C380BEC2…详见签名算法

响应参数(retCode=0 时)

字段名变量名必填类型描述
代付订单号agentpayOrderIdString(32)代付订单号
商户订单号mchOrderNoString(32)商户订单号
代付金额amountint单位分
手续费feeint单位分
状态statusString(2)0-待处理, 1-处理中, 2-成功, 3-失败, 4-待人工处理
转账提示transMsgString(128)转账提示
签名signString(32)详见签名算法

4. 查询余额

商户可通过该接口查询代付账户余额。

POST{payUrl}/agentpay/query_balance

请求参数

字段名变量名必填类型描述
商户IDmchIdString(30)商户号
请求时间reqTimeString(30)yyyyMMddHHmmss
接口版本versionString(3)固定:1.0
签名signString(32)详见签名算法

响应参数(retCode=0 时)

字段名变量名必填类型描述
代付余额agentpayBalanceint代付余额
可用代付余额availableAgentpayBalanceint可用代付余额
签名signString(32)详见签名算法

5. 代付结果通知

当代付处理完成后,支付系统会通过该接口向商户发起通知。链接由代付申请接口的 notifyUrl 参数设置。

通知参数

字段名变量名必填类型描述
代付订单号agentpayOrderIdString(32)代付订单号
商户订单号mchOrderNoString(32)商户订单号
状态statusString(2)0-待处理, 1-处理中, 2-成功, 3-失败, 4-待人工处理
手续费feeint单位分
转账提示transMsgString(128)转账提示
扩展域extraString(128)扩展域
通知请求时间reqTimeString(30)yyyyMMddHHmmss
签名signString(32)详见签名算法
回调响应

返回 success 表示成功,返回非 success 则失败并重试(60/120/180/240/300 秒)。字符串必须小写,前后不能有空格和换行。

6. 错误码

RetCode描述
0成功
9999业务异常,具体错误详见 RetMsg 字段
0100商户签名异常
0010系统错误
0011请使用 post 方法
0012post 数据为空
0013签名错误
0014参数错误
0015商户不存在
0110第三方超时
0111第三方异常
0112订单不存在
0113订单已支付
0114商品不存在
0115价格不对
0116物品数量不对
0117过程返回 255
0118DB 错误
0119支付中心没有对应的渠道
0120修改订单状态失败
已复制到剪贴板