微信小程序 消息推送php服務(wù)器驗(yàn)證實(shí)例詳解
微信文檔(靠下有個(gè)“接入指引”):https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/callback_help.html
設(shè)置頁(yè)面(“設(shè)置”>>“開(kāi)發(fā)設(shè)置”):
https://mp.weixin.qq.com/wxopen/initprofile?action=home&lang=zh_CN
1.設(shè)置服務(wù)器域名
比如:https://hosts.com
注意http和https協(xié)議的不同。
2.設(shè)置消息推送
2.1 在你的服務(wù)器里添加服務(wù)器接口test.php,test.php接口內(nèi)容主要是通過(guò)token驗(yàn)證消息是否為微信發(fā)來(lái)的,代碼參照官方的例子:
define("TOKEN","xxxxx");/ 后臺(tái)填寫(xiě)的token $wechatObj = new wechatAPI(); $wechatObj->isValid(); class wechatAPI { public function isValid()//驗(yàn)證微信接口,如果確認(rèn)是微信就返回它傳來(lái)的echostr參數(shù) { $echoStr = $_GET["echostr"]; if ($this->checkSignature()) { echo $echoStr; exit; } } private function checkSignature() //官方的驗(yàn)證函數(shù) { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } };
2.2 設(shè)置小程序后臺(tái)消息推送相關(guān)信息
URL(服務(wù)器地址):https://hosts.com/xx/test.php
Token: 任意符合規(guī)范的字符串,如上面定義的"xxxxx"
EncodingAESKey(消息加密密鑰):(隨機(jī)生成,自己保存就好了,這個(gè)加解密才用)
消息加密方式:暫時(shí)選擇明文,不用去考慮加密解密的問(wèn)題。
數(shù)據(jù)格式:根據(jù)需求選擇。
提交,如果沒(méi)有問(wèn)題就會(huì)成功了。(如果有問(wèn)題你可以用假的數(shù)據(jù)通過(guò)瀏覽器測(cè)試)
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!