首先注册账号,添加自己的应用,获取APPID和APPKEY,这两个后面获取签名的时候要用到。
你好! 这是注册地址,很简单,此处略过。https://ai.qq.com/console/home
签名算法
- 计算步骤
用于计算签名的参数在不同接口之间会有差异,但算法过程固定如下4个步骤。
一、将<key, value>请求参数对按key进行字典升序排序,得到有序的参数对列表N
二、将列表N中的参数对按URL键值对的格式拼接成字符串,得到字符串T(如:key1=value1&key2=value2),URL键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8,而不是小写%e8
三、将应用密钥以app_key为键名,组成URL键值拼接到字符串T末尾,得到字符串S(如:key1=value1&key2=value2&app_key=密钥)
四、对字符串S进行MD5运算,将得到的MD5值所有字符转换成大写,得到接口请求签名 - 注意事项
一、不同接口要求的参数对不一样,计算签名使用的参数对也不一样
二、参数名区分大小写,参数值为空不参与签名
三、URL键值拼接过程value部分需要URL编码
四、签名有效期5分钟,需要请求接口时刻实时计算签名信息
五、更多注意事项,请查看常见问题
上面是官网获取sign的流程,ios实现如下:
// An highlighted block
#import "AFNetWorking.h"
#import<CommonCrypto/CommonDigest.h>
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//
NSString *app_id = @"你的应用APPID";
NSString *APPKEY = @"你的应用APPKEY";
NSString *time_stamp = [self getNowTime];
NSString *nonce_str = [self randomStringWithLength:10];
NSMutableDictionary *params &#