视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

安全規(guī)范

1、簽名算法

(簽名校驗(yàn)工具)

簽名生成的通用步驟如下:

第一步,設(shè)所有發(fā)送或者接收到的數(shù)據(jù)為集合M,將集合M內(nèi)非空參數(shù)值的參數(shù)按照參數(shù)名ASCII碼從小到大排序(字典序),使用URL鍵值對(duì)的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

特別注意以下重要規(guī)則:

  1. ◆ 參數(shù)名ASCII碼從小到大排序(字典序);
  2. ◆ 如果參數(shù)的值為空不參與簽名;
  3. ◆ 參數(shù)名區(qū)分大小寫;
  4. ◆ 驗(yàn)證調(diào)用返回或微信主動(dòng)通知簽名時(shí),傳送的sign參數(shù)不參與簽名,將生成的簽名與該sign值作校驗(yàn)。
  5. ◆ 微信接口可能增加字段,驗(yàn)證簽名時(shí)必須支持增加的擴(kuò)展字段

第二步,在stringA最后拼接上key得到stringSignTemp字符串,并對(duì)stringSignTemp進(jìn)行MD5運(yùn)算,再將得到的字符串所有字符轉(zhuǎn)換為大寫,得到sign值signValue。 注意:密鑰的長度為32個(gè)字節(jié)。

◆ key設(shè)置路徑:微信商戶平臺(tái)(www.tg885.com)-->賬戶中心-->賬戶設(shè)置-->API安全-->設(shè)置API密鑰

舉例:

假設(shè)傳送的參數(shù)如下:

appid: wxd930ea5d5a258f4f

mch_id: 10000100

device_info: 1000

body: test

nonce_str: ibuaiVcKdpRxkhJA

第一步:對(duì)參數(shù)按照key=value的格式,并按照參數(shù)名ASCII字典序排序如下:

stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";

第二步:拼接API密鑰:

MD5簽名方式:

stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d" //注:key為商戶平臺(tái)設(shè)置的密鑰key

sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7" //注:MD5簽名方式


HMAC-SHA256簽名方式:

stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d" //注:key為商戶平臺(tái)設(shè)置的密鑰key

sign=hash_hmac("sha256",stringSignTemp,key).toUpperCase()="6A9AE1657590FD6257D693A078E1C3E4BB6BA4DC30B23E0EE2496E54170DACD6" //注:HMAC-SHA256簽名方式,部分語言的hmac方法生成結(jié)果二進(jìn)制結(jié)果,需要調(diào)對(duì)應(yīng)函數(shù)轉(zhuǎn)化為十六進(jìn)制字符串。

最終得到最終發(fā)送的數(shù)據(jù):

<xml>

<appid>wxd930ea5d5a258f4f</appid>

<mch_id>10000100</mch_id>

<device_info>1000</device_info>

<body>test</body>

<nonce_str>ibuaiVcKdpRxkhJA</nonce_str>

<sign>9A0A8659F005D6984697E2CA0A9CF3B7</sign>

</xml>

2、生成隨機(jī)數(shù)算法

微信支付API接口協(xié)議中包含字段nonce_str,主要保證簽名不可預(yù)測(cè)。我們推薦生成隨機(jī)數(shù)算法如下:調(diào)用隨機(jī)數(shù)函數(shù)生成,將得到的值轉(zhuǎn)換為字符串。

3、API證書

(1)獲取API證書(什么是api證書?如何升級(jí)?

微信支付接口中,涉及資金回滾的接口會(huì)使用到API證書,包括退款、撤銷接口。商家在申請(qǐng)微信支付成功后,收到的相應(yīng)郵件后,可以按照指引下載API證書,也可以按照以下路徑下載:微信商戶平臺(tái)(www.tg885.com)-->賬戶中心-->賬戶設(shè)置-->API安全 。證書文件說明如下:

證書附件 描述 使用場(chǎng)景 備注
pkcs12格式
(apiclient_cert.p12)
包含了私鑰信息的證書文件,為p12(pfx)格式,由微信支付簽發(fā)給您用來標(biāo)識(shí)和界定您的身份 撤銷、退款申請(qǐng)API中調(diào)用 windows上可以直接雙擊導(dǎo)入系統(tǒng),導(dǎo)入過程中會(huì)提示輸入證書密碼,證書密碼默認(rèn)為您的商戶ID(如:10010000)
以下兩個(gè)證書在PHP環(huán)境中使用:
證書附件 描述 使用場(chǎng)景 備注
證書pem格式
(apiclient_cert.pem)
從apiclient_cert.pem中導(dǎo)出證書部分的文件,為pem格式,請(qǐng)妥善保管不要泄露和被他人復(fù)制 PHP等不能直接使用p12文件,而需要使用pem,為了方便您使用,已為您直接提供 您也可以使用openssl命令來自己導(dǎo)出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.pem -out apiclient_cert.pem
證書密鑰pem格式
(apiclient_key.pem)
從apiclient_key.pem中導(dǎo)出密鑰部分的文件,為pem格式,請(qǐng)妥善保管不要泄露和被他人復(fù)制 PHP等不能直接使用p12文件,而需要使用pem,為了方便您使用,已為您直接提供 您也可以使用openssl命令來自己導(dǎo)出:openssl pkcs12 -nocerts -in apiclient_cert.pem -out apiclient_key.pem

(2)使用API證書

  • ◆ apiclient_cert.p12是商戶證書文件,除PHP外的開發(fā)均使用此證書文件。
  • ◆ 商戶如果使用.NET環(huán)境開發(fā),請(qǐng)確認(rèn)Framework版本大于2.0,必須在操作系統(tǒng)上雙擊安裝證書apiclient_cert.p12后才能被正常調(diào)用。
  • ◆ API證書調(diào)用或安裝需要使用到密碼,該密碼的值為微信商戶號(hào)(mch_id)

(3)API證書安全

1.證書文件不能放在web服務(wù)器虛擬目錄,應(yīng)放在有訪問權(quán)限控制的目錄中,防止被他人下載;
2.建議將證書文件名改為復(fù)雜且不容易猜測(cè)的文件名;
3.商戶服務(wù)器要做好病毒和木馬防護(hù)工作,不被非法侵入者竊取證書文件。
4.如何使用微信API證書?具體使用方式可參考我們提供的SDK,詳見:SDK與DEMO下載

4、商戶回調(diào)API安全

在普通的網(wǎng)絡(luò)環(huán)境下,HTTP請(qǐng)求存在DNS劫持、運(yùn)營商插入廣告、數(shù)據(jù)被竊取,正常數(shù)據(jù)被修改等安全風(fēng)險(xiǎn)。商戶回調(diào)接口使用HTTPS協(xié)議可以保證數(shù)據(jù)傳輸?shù)陌踩浴K晕⑿胖Ц督ㄗh商戶提供給微信支付的各種回調(diào)采用HTTPS協(xié)議。請(qǐng)參考:HTTPS搭建指南