微信支付簽名算法,微信支付簽名算法是什么?
微信支付簽名算法,微信支付簽名算法是什么?設置微信簽名支付時,需要小程序,設置微信支付簽名算法,以下是小編整理的微信支付簽名算法的內容。有興趣的朋友們可以往下學習。
簽名生成的通用步驟如下:
第一步,設所有發(fā)送或者接收到的數(shù)據為集合M,將集合M內非空參數(shù)值的參數(shù)按照參數(shù)名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特別注意以下重要規(guī)則:
◆ 參數(shù)名ASCII碼從小到大排序(字典序);
◆ 如果參數(shù)的值為空不參與簽名;
◆ 參數(shù)名區(qū)分大小寫;
◆ 驗證調用返回或微信主動通知簽名時,傳送的sign參數(shù)不參與簽名,將生成的個性簽名與該sign值作校驗。
◆ 微信接口可能增加字段,驗證簽名時必須支持增加的擴展字段
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并對stringSignTemp進行MD5運算,再將得到的字符串所有字符轉換為大寫,得到sign值signValue。
key設置路徑:微信商戶平臺(pay.weixin.qq.com)-->賬戶設置-->API安全-->密鑰設置
舉例:
假設傳送的參數(shù)如下:
appid: wxd930ea5d5a258f4f
mch_id: 10000100
device_info: 1000
body: test
nonce_str: ibuaiVcKdpRxkhJA
第一步:對參數(shù)按照key=value的格式,并按照參數(shù)名ASCII字典序排序如下:
stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
第二步:拼接API密鑰:
stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d"
sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7"
最終得到最終發(fā)送的數(shù)據:
2、生成隨機數(shù)算法
微信支付API接口協(xié)議中包含字段nonce_str,主要保證簽名不可預測。我們推薦生成隨機數(shù)算法如下:調用隨機數(shù)函數(shù)生成,將得到的值轉換為字符串。
以上是小編整理的微信支付簽名算法,希望對您有幫助,更多公眾號內容,關注Hi商學院。