本文实例讲述了PHP微信公众平台企业号验证接口。分享给大家供大家参考,具体如下:
微信公众平台企业号验证接口、回调 PHP版,本人为了解决这个企业号的验证和发送消息的问题,整整研究了几天时间,因为微信企业号刚推出来的时候网上资料比较少!后来在一些朋友的帮助下和本人反复调试完善下,终于整理得到了比较理想的文档,经亲测,实验成功。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
include_once "WXBizMsgCrypt.php" ;
// 第三方发送消息给公众平台
$encodingAesKey = "rpJmhCphnndiCLIcNKcUmhTn2GQBNjISPU9GfsfOlxx" ;
$token = "xxxxxxx" ;
$corpId = "wxa9a0031f24631f9x" ; //这里已正确填写自己的corpid
//公众号服务器数据
$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 = "您好,马云!我知道您创建了阿里巴巴!" ;
break ;
case "马化腾" :
$mycontent = "您好,马化腾!我知道创建了企鹅帝国!" ;
break ;
case "史玉柱" :
$mycontent = "您好,史玉柱!我知道您创建了巨人网络!" ;
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 文件点击此处本站下载。
希望本文所述对大家PHP程序设计有所帮助。
原文链接:http://blog.csdn.net/k8080880/article/details/40342929