签名生成的通用步骤如下:
第一步,设所有发送的数据为集合M,将集合M内所有参数按照参数名ASCII码从小到大排序(字典序),参数值去除两边空格,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 参数名区分大小写;
◆ 参数值需要进行URLEncode编码;
◆ 接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到gntoken值。
◆ APPKEY 设置路径:平台-->用户中心-->经销商-->API设置
假设传送的参数如下,以PHP代码为例:
$params = array ( 'appid' => 'APPID', 'gntime' => 1234567890, 'ym' => 'gname.com', 'url' => 'https://www.gname.com' );
第一步:对参数按照key=value的格式,key按照ASCII字典序,value值需要进行URLEncode编码,字符串如下:
$stringA = "appid=APPID&gntime=1234567890&url=https%3A%2F%2Fwww.gname.com&ym=gname.com";
第二步:拼接APPKEY:
$appkey = "APPKEY" //注:appkey $stringB = "appid=APPID&gntime=1234567890&url=https%3A%2F%2Fwww.gname.com&ym=gname.comAPPKEY"; //注:MD5签名方式 并转成大写 $gntoken = strtoupper(md5($stringB)); //B48D34C9A15A3F33ED61396E5BD8F1F8