1、 获得GET参数,形成数组;
2、 获得POST参数,加入数组,如果已经存在相同键名的值,覆盖;
3、 过滤非实际数据参数(app,controller,action,key,sign);
4、 对参数数组按键名排序;
5、 http_build_query数组形成GET形式的字符串,既使数组为空,也要进行此步骤;
6、 附加加AUTH_SECRET,形式新的字符串;
7、 进行MD5计算,获取的32位值即为SIGN签名的值
在发送请求时需要将AUTH_KEY和刚才计算的数据签名SIGN附加在请求地址上,以GET参数传递,一个典型的API请求地址构造处理如下(PHP代码):
<?php
$gateway = 'http://api.cmstop.dev/';
$auth_key = '84d63a7cb4af3245b64af91e9259cd6a';
$auth_secret = '0042a0c3e010d812773036662d8792de';
$api_url = '?app=system&controller=index&action=index';
$get = array();
$post = array();
$params = array_merge($get, $post);
ksort($params);
$sign = http_build_query($params);
$sign .= $auth_secret;
$sign = md5($sign);
$request_url = $gateway . $api_url . '&key=' .$auth_key . '&sign=' .$sign;
//发送请求...
?>
注:该示例接口为测试接口,其中 http://api.cmstop.dev是本文档书为书写方便引入的虚拟接口域名,工作中请以实际地址和参数值为准。