1、组装待签名字符串
1)筛选
大部分支付宝接口中要剔除sign_type、sign两个参数,个别接口只剔除sign参数。
存在空值的参数必须剔除。
2)排序
在参数集合中,根据参数(不是参数对应的值)的第一个字符的键值ASCII码递增排序,如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。
3)拼接
在参数集合中,把每个参数及其值组合成“参数=参数值”的格式(在无线产品手机安全支付中,每个参数的组合格式是“参数="参数值"”),并且把这些参数用&字符连接起来,如:
2、调用签名函数
1)MD5签名
密钥获取:查看MD5(Key)
密钥用法:把MD5密钥(Key)拼接在待签名字符串尾部。
签名函数调用md5加密函数,对已经与MD5密钥拼接好的新字符串做加密运算。
2)RSA或DSA签名
密钥生成:请查看:PID和密钥管理中相应的内容
密钥用法:准备好支付宝公钥、商户自己生成的私钥、待签名字符串。
签名函数调用RSA或DSA加密函数,分别把商户自己生成的私钥、待签名字符串置入函数中得到签名结果。
在MD5签名时,需要支付宝安全校验码(Key)参与签名。安全校验码(Key)是以英文字母和数字组成的32位字符串。
3、签名结果的用途
得到的签名结果也是一串字符串,这串字符串便是sign参数的值,把这串字符串赋值于sign参数。