一、加签
1、将报文内容+时间戳(timestamp)+随机字符串(nonce)+appid进行sha256加密,得到签名$sign
$sign = hash('sha256', body=string×tamp=time()&nonce=asdasd&appid=sadasdw)
2、将签名$sign使用私钥进行加密,并将结果进行base64_encode转化下
openssl_private_encrypt($string, $encrypt, $privateKey);
$encrypt = base64_encode($encrypt);
3、将加密后的签名($encrypt)、时间戳(timestamp)、随机字符串(nonce)和appid放在Header中,进行传输
二、验签
1、从请求的Header中提取出加密后的签名($encrypt)、时间戳(timestamp)、随机字符串(nonce)和appid
2、同加签第一步,将报文内容+时间戳(timestamp)+随机字符串(nonce)+appid进行sha256加密,得到签名$sign