Skip to content

旧版 API 接口文档 (GlobalPay V1.4.1)

说明

此文档为旧版 API,使用 MD5/RSA 签名方式提交业务参数。建议新接入方使用新版 API(RSA+AES 混合加密 + encryptedPayload)。

一、技术规范

1.1 请求方式

项目说明
请求协议HTTP / HTTPS
请求方法POST
Content-Typeapplication/x-www-form-urlencodedapplication/json(两种均支持)
字符编码UTF-8
响应格式JSON

1.2 提交方式说明

旧版接口同时支持以下两种提交方式,任选其一即可:

提交方式Content-Type参数格式说明
表单提交application/x-www-form-urlencodedkey1=value1&key2=value2传统表单方式
JSON 提交application/json{"key1":"value1","key2":"value2"}以 JSON 请求体提交

重要

两种提交方式使用相同的业务参数和签名规则,服务端会根据 Content-Type 自动识别提交方式。签名时参数的拼接规则保持一致(按参数名 ASCII 字典序排序拼接为 key1=value1&key2=value2),只是最终发送时的请求体格式不同。

示例对比

表单提交:

bash
curl -X POST "http://接口域名/alliesPay/bussiness/order" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "alliesNo=test001&tradeNo=ORDER001&totalAmount=100.00&tradeType=31&sign=XXXX"

JSON 提交:

bash
curl -X POST "http://接口域名/alliesPay/bussiness/order" \
  -H "Content-Type: application/json" \
  -d '{"alliesNo":"test001","tradeNo":"ORDER001","totalAmount":"100.00","tradeType":"31","sign":"XXXX"}'

1.3 请求头参数(不参与签名,非必填)

参数名类型是否必填示例值说明
X-ClientIdStringf1f24a9d296ca47d8f0b1友商接入 ID

1.4 公共响应格式

参数名类型示例值说明
codeString10000代码对应业务请参照业务代码表格
msgString成功响应信息

二、签名规则

2.1 签名生成步骤

第一步:参数排序

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

第二步:拼接密钥并 MD5

  • 在 stringA 最后拼接上 &key=商户密钥 得到 stringSignTemp
  • 对 stringSignTemp 进行 MD5 运算
  • 将得到的字符串所有字符转换为大写,得到 sign 值

2.2 签名示例

假设传送的参数如下:

alliesNo: d930ea5d5a258f4f
tradeNo: 10000100
totalAmount: 1000
tradeType: 31
productId: 310
noticeUrl: https://example.com/notify
frontNotifyUrl: https://example.com/return
attach: eyAiYmF... (Base64编码的JSON串)

第一步:对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序如下:

stringA=alliesNo=d930ea5d5a258f4f&attach=eyAiYmF...&frontNotifyUrl=https://example.com/return&noticeUrl=https://example.com/notify&productId=310&totalAmount=1000&tradeNo=10000100&tradeType=31

第二步:拼接 API 密钥:

stringSignTemp=stringA&key=192006250b4c09247ec02edce69f6a2d
sign=MD5(stringSignTemp).toUpperCase()=3E541783111209F709ACDA0F4BFD17EA

2.3 attach 参数签名规则

attach 字段签名规则如下:

  1. 把 attach 参数转换为 JSON 串
  2. 并用 Base64 编码 方式,把加密完的字符串放入 attach 字段

Java 示例:

java
JSONObject jsonObject = new JSONObject();
jsonObject.put("bankAccount", "小王");
jsonObject.put("bankCard", "3501101111255501");
jsonObject.put("bankMark", "CCB");
jsonObject.put("bankName", "建设银行");
String jsonData = jsonObject.toJSONString();

// JSON内容: {"bankAccount":"小王","bankCard":"3501101111255501","bankMark":"CCB","bankName":"建设银行"}

byte[] a = Base64Utils.encode(jsonData.getBytes());
String attach = new String(a);

PHP 示例:

php
$attachData = [
    'bankAccount' => '小王',
    'bankCard'    => '3501101111255501',
    'bankMark'    => 'CCB',
    'bankName'    => '建设银行',
];
$attach = base64_encode(json_encode($attachData, JSON_UNESCAPED_UNICODE));

三、接口列表

序号接口路径接口名称
1/alliesPay/bussiness/order代收下单接口
2/alliesPay/bussiness/query代收订单查询接口
3/alliesPay/bussiness/queryBalance友商余额查询接口
4/peerpay/bussiness/order代付下单接口
5/peerpay/bussiness/query代付订单查询接口

接口说明目录


四、业务返回码

代码描述
10000处理成功
2003ClientId 错误
2004友商不存在
2005未传金额
2006未传订单号
2007未传回调地址
2008订单号已存在
2009未传支付方式
2010签名错误
9999系统异常

五、回调响应要求

当通知方式为服务器后台异步通知时,友商系统在收到通知并处理完成后,必须打印输出包含 success 这个字符串

如果响应内容不包含 success,支付平台系统会认为通知失败。

正确示例(PHP):

php
echo "success";

正确示例(Java Spring):

java
@RequestMapping("/notify")
@ResponseBody
public String notify(HttpServletRequest request) {
    // 处理业务逻辑...
    return "success";
}