【调度系统】广东民航医疗快线调度系统源代码
wanglizhong
2025-06-16 ae5b0a8c63979351028215b8fe8cdf4b0766c272
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
<?php require '../inc/odbc.php';?>
<?php
include_once "WXBizMsgCrypt.php";
// 假设企业号在公众平台上设置的参数如下
$encodingAesKey = "p53txECFAcKYMQ4vzBEvJffCbugNgzapBq7IatW2sV1";
$token = "QDG6eK";
$corpId = "wx248505bfbab6d0c1";
 
/*
------------使用示例二:对用户回复的消息解密---------------
用户回复消息或者点击事件响应时,企业会收到回调消息,此消息是经过公众平台加密之后的密文以post形式发送给企业,密文格式请参考官方文档
假设企业收到公众平台的回调消息如下:
POST /cgi-bin/wxpush? msg_signature=477715d11cdb4164915debcba66cb864d751f3e6&timestamp=1409659813&nonce=1372623149 HTTP/1.1
Host: qy.weixin.qq.com
Content-Length: 613
<xml>
<ToUserName><![CDATA[wx5823bf96d3bd56c7]]></ToUserName><Encrypt><![CDATA[RypEvHKD8QQKFhvQ6QleEB4J58tiPdvo+rtK1I9qca6aM/wvqnLSV5zEPeusUiX5L5X/0lWfrf0QADHHhGd3QczcdCUpj911L3vg3W/sYYvuJTs3TUUkSUXxaccAS0qhxchrRYt66wiSpGLYL42aM6A8dTT+6k4aSknmPj48kzJs8qLjvd4Xgpue06DOdnLxAUHzM6+kDZ+HMZfJYuR+LtwGc2hgf5gsijff0ekUNXZiqATP7PF5mZxZ3Izoun1s4zG4LUMnvw2r+KqCKIw+3IQH03v+BCA9nMELNqbSf6tiWSrXJB3LAVGUcallcrw8V2t9EL4EhzJWrQUax5wLVMNS0+rUPA3k22Ncx4XXZS9o0MBH27Bo6BpNelZpS+/uh9KsNlY6bHCmJU9p8g7m3fVKn28H3KDYA5Pl/T8Z1ptDAVe0lXdQ2YoyyH2uyPIGHBZZIs2pDBS8R07+qN+E7Q==]]></Encrypt>
<AgentID><![CDATA[218]]></AgentID>
</xml>
企业收到post请求之后应该
1.解析出url上的参数,包括消息体签名(msg_signature),时间戳(timestamp)以及随机数字串(nonce)
2.验证消息体签名的正确性。
3.将post请求的数据进行xml解析,并将<Encrypt>标签的内容进行解密,解密出来的明文即是用户回复消息的明文,明文格式请参考官方文档
第2,3步可以用公众平台提供的库函数DecryptMsg来实现。
*/
 
$sReqMsgSig=empty($_REQUEST['msg_signature'])!=false ? "1" : $_REQUEST['msg_signature'];
$sReqTimeStamp=empty($_REQUEST['timestamp'])!=false ? "2" : $_REQUEST['timestamp'];
$sReqNonce=empty($_REQUEST['nonce'])!=false ? "3" : $_REQUEST['nonce'];
 
$sql="insert into API_Json (method,Json,reserve) values ('contactsApi','".$sReqMsgSig."','OK')";
$UPsql = sqlsrv_query($conn,$sql);
/*
// post请求的密文数据
$sReqData = $_POST;
$sMsg = "";  // 解析之后的明文
$errCode = $wxcpt->DecryptMsg($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $sReqData, $sMsg);
if ($errCode == 0) {
    // 解密成功,sMsg即为xml格式的明文
    //var_dump($sMsg);
    // TODO: 对明文的处理
    $sql="insert into API_Json (method,Json) values ('contactsApi','OK')";
    $UPsql = sqlsrv_query($conn,$sql);
    $sql="insert into API_Json (method,Json) values ('contactsApi','".$sMsg."')";
    $UPsql = sqlsrv_query($conn,$sql);
} else {
    //print("ERR: " . $errCode . "\n\n");
    $sql="insert into API_Json (method,Json) values ('contactsApi','".$errCode."')";
    $UPsql = sqlsrv_query($conn,$sql);
    //exit(-1);
}
*/
?>