欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php checksignature

劉姿婷1年前7瀏覽0評論

PHP Checksignature是一個常用的驗證微信公眾號開發者的工具。在進行微信公眾號開發者相關功能的時候需要進行驗證,這個工具可以幫助我們驗證我們的代碼是否正確,從而避免一些不必要的錯誤。

我們假設在進行微信公眾號的開發時,需要獲取微信服務器發送的請求內容。如果我們沒有進行驗證,那么我們獲取到的數據就不能保證是來自微信服務器的數據。我們可以使用PHP Checksignature來驗證,如果驗證成功,就說明我們獲取到的是真實的微信服務器發送的數據。

/**
 * PHP Checksignature
 * 驗證微信請求是否來自微信服務器
 *
 * @param string $token 微信公眾平臺設置的TOKEN
 * @return void
 */
function checkSignature($token)
{
$signature = isset($_GET['signature']) ? $_GET['signature'] : '';
$timestamp = isset($_GET['timestamp']) ? $_GET['timestamp'] : '';
$nonce = isset($_GET['nonce']) ? $_GET['nonce'] : '';
// 將timestamp、nonce、token按字典序排好
$tmpArray = array($timestamp, $nonce, $token);
sort($tmpArray, SORT_STRING);
//將排序后的三個參數拼接成一個字符串進行sha1加密
$tmpStr = implode($tmpArray);
$tmpStr = sha1($tmpStr);
// 微信加密簽名和我們生成的加密簽名進行對比
if ($tmpStr == $signature) {
echo $_GET['echostr'];
exit;
}
}

在代碼中,首先我們使用isset函數獲取GET請求中的三個參數:signature、timestamp、nonce。然后按照字典序對這三個參數進行排序,并使用implode函數將排序后的三個參數進行拼接。接下來使用sha1函數對拼接后的字符串進行加密,最后將生成的加密簽名與請求中的signature進行對比。

如果兩者相等,說明該請求來自微信服務器。我們可以使用echostr將請求內容返回到微信服務器,從而完成微信開發者的驗證。

使用PHP Checksignature可以保證獲取到的微信請求內容來自真實的微信服務器。這樣我們就可以在開發過程中,放心的使用微信提供的全部功能,為我們的應用增添更多的功能。