企业收到post请求之后应该 1.解析出url上的参数,包括消息体签名(msg_signature),时间戳(timestamp)以及随机数字串(nonce) 2.验证消息体签名的正确性。 3.将post请求的数据进行xml解析,并将标签的内容进行解密,解密出来的明文即是用户回复消息的明文,明文格式请参考官方文档 第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); } */ ?>