接口签名介绍
简要描述:
请求内容 | 说明 |
---|---|
URL | https://shop.task.mf178.cn |
接口测试 | http://test.shop.center.mf178.cn |
格式 | json |
字符编码 | UTF-8 |
HTTP请求方式 | POST |
请求数限制 | 1秒1次 |
接口版本:
版本号 | 制定人 | 制定日期 | 修订日期 |
---|---|---|---|
2.0.0 | coco、lushao | 2022-12-07 | 2022-12-07 |
1 公共请求参数
参数名称 | 参数类型 | 是否必须 | 参数描述 |
---|---|---|---|
app_key | string | 是 | 分配给商户的APPKEY |
timestamp | int | 是 | Unix时间戳,时区为 GMT+8 允许与服务器最大误差30秒 |
sign | string | 是 | 所有请求参数签名 ,详见签名算法 |
用户账号 | 用户密码 | AppKey | AppSecret |
---|---|---|---|
sgd0000 | abc123 | 142890020 | c1e45d27001adcf4 |
sgd1111 | abc123 | 37027694939 | bffa4250483846e6 |
sgd2222 | abc123 | 396738366 | 57f67ed5bfbde91c |
sgd3333 | abc123 | 244197338 | f220adf7e59b1aa7 |
sgd4444 | abc123 | 69778711287 | a6c70a1026ab6941 |
sgd5555 | abc123 | 810658511 | 3e960cdbcba641a5 |
sgd6666 | abc123 | 87445795731 | 1b15ea7fae20afd6 |
sgd7777 | abc123 | 368019885 | 19bd04ca384db2cb |
sgd8888 | abc123 | 2534902651 | e4ba20065430aab3 |
sgd9999 | abc123 | 7674483294 | a198a8e6df0b897e |
用户id:110 APPkey:740361301 APPsecret:fa1f2b3fe2474156
用户id:111 APPkey:61610489742 APPsecret:26f38b1e6daae482
用户id:112 APPkey:30418572199 APPsecret:d1b5e08275e2172f
正式环境
注:接口采用utf-8编码
注意:
1对参数进行签名时,一定不要写死!!!,请按签名算法进行计算!!
2所有提交参数都需要参与签名计算 为空的也需要
参数签名算法PHP示例
请注意:
1.对参数进行签名时,一定不要写死!!!,请按签名算法进行计算!!
2.所有提交参数都需要参与签名计算 为空的也需要
3.参数进行首字母升序排序
4.下面的参数只是示例,具体参数要根据实际接口参数进行验签
//系统分配的接口key与secret
$app_key = '1f2811dcd32b2c5c';
$app_secret = '3C569A210D1260B2';
$params = array(
'app_key' => $app_key,
'timestamp' => time(),
'phone' => '13800138000',
'amount' => 100
);
//对参数按key进行排序
ksort($params);
//连接所有参数名与参数值
$buff = '';
foreach ($params as $k => $v) {
if ($k != "sign") {
$buff .= $k . $v;
}
}
//连接加密串
$buff .= $app_secret;
//使用md5计算参数串哈希值
$params['sign'] = md5($buff);
String appKey = "1f2811dcd32b2c5c";
String appSecret = "3C569A210D1260B2";
TreeMap<String, String> params = new TreeMap<String,String>();
params.put("app_key", appKey);
params.put("timestamp", ""+(System.currentTimeMillis()/1000L));
params.put("phone", "13800138000");
params.put("amount", "100");
StringBuilder sb = new StringBuilder();
for(Entry<String, String> item : params.entrySet()){
if(item.getKey().equals("sign"))
continue;
sb.append(item.getKey()).append(item.getValue());
}
sb.append(appSecret);
params.put("sign",md5(sb.toString()));
修改于 2025-06-05 01:56:05