PHP編程之微信公眾平臺企業(yè)號驗證接口示例【回調(diào)操作】
本文實例講述了PHP微信公眾平臺企業(yè)號驗證接口。分享給大家供大家參考,具體如下:
微信公眾平臺企業(yè)號驗證接口、回調(diào) PHP版,本人為了解決這個企業(yè)號的驗證和發(fā)送消息的問題,整整研究了幾天時間,因為微信企業(yè)號剛推出來的時候網(wǎng)上資料比較少!后來在一些朋友的幫助下和本人反復(fù)調(diào)試完善下,終于整理得到了比較理想的文檔,經(jīng)親測,實驗成功。
include_once "WXBizMsgCrypt.php";
// 第三方發(fā)送消息給公眾平臺
$encodingAesKey = "rpJmhCphnndiCLIcNKcUmhTn2GQBNjISPU9GfsfOlxx";
$token = "xxxxxxx";
$corpId ="wxa9a0031f24631f9x"; //這里已正確填寫自己的corpid
//公眾號服務(wù)器數(shù)據(jù)
$sReqMsgSig = $sVerifyMsgSig = $_GET['msg_signature'];
$sReqTimeStamp = $sVerifyTimeStamp = $_GET['timestamp'];
$sReqNonce = $sVerifyNonce = $_GET['nonce'];
$sReqData = file_get_contents("php://input");;
$sVerifyEchoStr = $_GET['echostr'];
$wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId);
if($sVerifyEchoStr){
$sEchoStr = "";
$errCode = $wxcpt->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);
if ($errCode == 0) {
print($sEchoStr);
} else {
print($errCode . "\n\n");
}
exit;
}
//decrypt
$sMsg = ""; //解析之后的明文
$errCode = $wxcpt->DecryptMsg($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $sReqData, $sMsg);
if ($errCode == 0) {
$xml = new DOMDocument();
$xml->loadXML($sMsg);
$reqToUserName = $xml->getElementsByTagName('ToUserName')->item(0)->nodeValue;
$reqFromUserName = $xml->getElementsByTagName('FromUserName')->item(0)->nodeValue;
$reqCreateTime = $xml->getElementsByTagName('CreateTime')->item(0)->nodeValue;
$reqMsgType = $xml->getElementsByTagName('MsgType')->item(0)->nodeValue;
$reqContent = $xml->getElementsByTagName('Content')->item(0)->nodeValue;
$reqMsgId = $xml->getElementsByTagName('MsgId')->item(0)->nodeValue;
$reqAgentID = $xml->getElementsByTagName('AgentID')->item(0)->nodeValue;
switch($reqContent){
case "馬云":
$mycontent="您好,馬云!我知道您創(chuàng)建了阿里巴巴!";
break;
case "馬化騰":
$mycontent="您好,馬化騰!我知道創(chuàng)建了企鵝帝國!";
break;
case "史玉柱":
$mycontent="您好,史玉柱!我知道您創(chuàng)建了巨人網(wǎng)絡(luò)!";
break;
default :
$mycontent="你是誰啊?!一邊涼快去!";
break;
}
$sRespData =
"<xml>
<ToUserName><![CDATA[".$reqFromUserName."]]></ToUserName>
<FromUserName><![CDATA[".$corpId."]]></FromUserName>
<CreateTime>".sReqTimeStamp."</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[".$mycontent."]]></Content>
</xml>";
$sEncryptMsg = ""; //xml格式的密文
$errCode = $wxcpt->EncryptMsg($sRespData, $sReqTimeStamp, $sReqNonce, $sEncryptMsg);
if ($errCode == 0) {
//file_put_contents('smg_response.txt', $sEncryptMsg); //debug:查看smg
print($sEncryptMsg);
} else {
print($errCode . "\n\n");
}
} else {
print($errCode . "\n\n");
}
?>
附:WXBizMsgCrypt.php 文件點擊此處本站下載。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP微信開發(fā)技巧匯總》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP中json格式數(shù)據(jù)操作技巧匯總》及《PHP針對XML文件操作技巧總結(jié)》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- PHP實現(xiàn)微信商戶支付企業(yè)付款到零錢功能
- Thinkphp 5.0實現(xiàn)微信企業(yè)付款到零錢
- php實現(xiàn)微信支付之企業(yè)付款
- PHP編程實現(xiàn)微信企業(yè)向用戶付款的方法示例
- php實現(xiàn)微信企業(yè)轉(zhuǎn)賬功能
- 微信企業(yè)轉(zhuǎn)賬之入口類分裝php代碼
- php實現(xiàn)微信公眾號企業(yè)轉(zhuǎn)賬功能
- PHP微信企業(yè)號開發(fā)之回調(diào)模式開啟與用法示例
- PHP實現(xiàn)微信公眾號企業(yè)號自定義菜單接口示例
- php微信公眾號開發(fā)之微信企業(yè)付款給個人
相關(guān)文章
PHP5.5基于mysqli連接MySQL數(shù)據(jù)庫和讀取數(shù)據(jù)操作實例詳解
這篇文章主要介紹了PHP5.5基于mysqli連接MySQL數(shù)據(jù)庫和讀取數(shù)據(jù)操作,結(jié)合實例形式詳細(xì)分析了php5.5使用mysqli連接、讀取mysql數(shù)據(jù)庫,以及PDO預(yù)處理相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
php使用SAE原生Mail類實現(xiàn)各種類型郵件發(fā)送的方法
這篇文章主要介紹了php使用SAE原生Mail類實現(xiàn)各種類型郵件發(fā)送的方法,結(jié)合實例形式分析了SAE平臺解決郵件發(fā)送問題的相關(guān)操作技巧,需要的朋友可以參考下2016-10-10
PHP array_multisort()函數(shù)的使用札記
array_multisort 對多個數(shù)組或多維數(shù)組進行排序的函數(shù),需要的朋友可以參考下。2011-07-07
php utf-8轉(zhuǎn)unicode的函數(shù)
php下我們想把uft-8,轉(zhuǎn)成unicode可以用下面的函數(shù)來實現(xiàn)2008-06-06
深入eAccelerator與memcached的區(qū)別詳解

