## api签名方案1:
```
举例:
1.参数: key1=value1
key11=value11
key100=value100
key8=value8
key2=value2
2.分配的应用信息:
appid=10000
secret=abc123$%^cjs789xyz
签名算法:
第一步:参数处理
1.参数名按ASCII码从小到大排序(字典序)
2.如果参数的值为空则该参数不参与签名,sign参数也不参与签名
3.如果参数值是数组或对象也不参与签名
4.如果是没有参考可签名的时候是“&key=密钥进行签名”
5.参数名区分大小写
stringA=key1=value1&key100=value100&key11=value11&key2=value2&key8=value8
第二步:拼接API密钥
在stringA最后拼接上secret及值得到stringSignTemp字符串,stringSignTemp=stringA+"&key=abc123$%^cjs789xyz"
stringSignTemp=key1=value1&key100=value100&key11=value11&key2=value2&key8=value8&key=abc123$%^cjs789xyz
备注:如果是没有参考可签名的时候stringSignTemp=&key=abc123$%^cjs789xyz
第三步:支持的根据签名方式进行签名,2种签名方式:1.MD5, 2.HMAC-SHA256
MD5方式: $string = md5($stringSignTemp);
HMAC-SHA256方式:$string = hash_hmac("sha256", $stringSignTemp , $secret);
第四步:把签名结果转为大写
$sign = strtoupper($string);
另外对emoji等特殊字符要测试验证一下如何处理
```