网站首页技术博客

一个微信链接及接收消息的类​

洞天水月2021-03-12 14:32:212506人次阅读
摘要一个微信链接及接收消息的类
VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);
            if ($errCode == 0){
                echo $sEchoStr;
                exit();
            }else{
                Log::write("ERR: " . $errCode . "\n\n");
                print("ERR: " . $errCode . "\n\n");
                exit();
            }
        }
        else{
           $sReqMsgSig = input("msg_signature");
           $sReqTimeStamp = input("timestamp");
           $sReqNonce = input("nonce");
           $sReqData =file_get_contents("php://input");
           $sMsg = "";  // 解析之后的明文
           $errCode = $wxcpt->DecryptMsg($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $sReqData, $sMsg);
           if ($errCode == 0) {
               Log::write($sMsg);
               $xml = new \DOMDocument();
               $xml->loadXML($sMsg);
               //FromUserName
               $FromUserName = $xml->getElementsByTagName("FromUserName")->item(0)->nodeValue;
               //AgentID
               $AgentID = $xml->getElementsByTagName("AgentID")->item(0)->nodeValue;
               //与配置的agentid相同
               if ($AgentID == config("agentid")){
                   //接收到的消息类型
                   $MsgType = $xml->getElementsByTagName("MsgType")->item(0)->nodeValue;
                   //事件
                   if ($MsgType=="event"){
                       //事件类型
                       $Event = $xml->getElementsByTagName("Event")->item(0)->nodeValue;
                       if ($Event=="scancode_push"){//扫码推送事件
                           $EventKey = $xml->getElementsByTagName("EventKey")->item(0)->nodeValue;
                           if ($EventKey==config("eventKey")){//事件key值与配置相同
                               $ScanType = $xml->getElementsByTagName("ScanType")->item(0)->nodeValue;
                               if ($ScanType == "qrcode"){//二维码扫描
                                  //扫描结果
                                  $ScanResult= $xml->getElementsByTagName("ScanResult")->item(0)->nodeValue;
                                  //打开消费页面
                                  Log::write($ScanResult);
                               }
                               
                           }
                       }
                   }
               }
           }else{
               Log::write("ERR: " . $errCode . "\n\n");
           }
        }
    }
}


文章评论