数据签名流程

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是本文档书为书写方便引入的虚拟接口域名,工作中请以实际地址和参数值为准。



Copyright ©2009 - 2014 CmsTop.Com.All rights reserved.
思拓合众