Dieser Artikel stellt hauptsächlich die Eröffnung und Verwendung des PHP-WeChat-Enterprise-Konto-Rückrufmodus vor. Er analysiert die Eröffnung und Verwendung des PHP-WeChat-Enterprise-Konto-Rückrufmodus in Form konkreter Beispiele Kommentare, um das Verständnis der Leser zu erleichtern. Es ist erforderlich, dass Freunde darauf verweisen können. Ich hoffe, dass es für alle hilfreich ist, zu verstehen, wie der Rückrufmodus für das WeChat-Unternehmenskonto aktiviert und verwendet wird.
Im Sommerpraktikum arrangierte der Leiter die Entwicklung eines WeChat-Unternehmenskontos. Ich werde die hier aufgetretenen Probleme aufzeichnen und sie mit Freunden teilen, die auf das gleiche Problem stoßen. Ich hoffe, dass es meinen Freunden hilft. Über den Registrierungsteil des WeChat-Unternehmenskontos muss natürlich nichts mehr gesagt werden. Heute werden wir das WeChat-Unternehmenskonto aufzeichnen – der Rückrufmodus öffnet den PHP-Teil.
Tatsächlich ist die WeChat-Entwicklungsdokumentation sehr detailliert und mit der offiziellen Demo können Sie sie direkt verwenden, solange Sie geringfügige Änderungen vornehmen. Aber warum kommt es immer zu einem Fehler?
Nachfolgend poste ich zunächst den Code zum Einschalten des Rückrufmodus nach erfolgreicher Verifizierung
<?php //回调开启 include_once "WXBizMsgCrypt.php"; // 假设企业号在公众平台上设置的参数如下 $encodingAesKey = "xxx"; $token = "xxx"; $corpId = "xxx";//填写自己的相关参数,与微信公众平台一致 /* ------------使用示例一:验证回调URL--------------- *企业开启回调模式时,企业号会向验证url发送一个get请求 假设点击验证时,企业收到类似请求: * GET /cgi-bin/wxpush?msg_signature=5c45ff5e21c57e6ad56bac8758b79b1d9ac89fd3×tamp=1409659589&nonce=263014780&echostr=P9nAzCzyDtyTWESHep1vC5X9xho%2FqYX3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp%2B4RPcs8TgAE7OaBO%2BFZXvnaqQ%3D%3D * HTTP/1.1 Host: qy.weixin.qq.com 接收到该请求时,企业应 1.解析出Get请求的参数,包括消息体签名(msg_signature),时间戳(timestamp),随机数字串(nonce)以及公众平台推送过来的随机加密字符串(echostr), 这一步注意作URL解码。 2.验证消息体签名的正确性 3. 解密出echostr原文,将原文当作Get请求的response,返回给公众平台 第2,3步可以用公众平台提供的库函数VerifyURL来实现。 */ // $sVerifyMsgSig = HttpUtils.ParseUrl("msg_signature"); $sVerifyMsgSig = $_GET["msg_signature"] ;//"5c45ff5e21c57e6ad56bac8758b79b1d9ac89fd3"; // $sVerifyTimeStamp = HttpUtils.ParseUrl("timestamp"); $sVerifyTimeStamp = $_GET["timestamp"];//"1409659589"; // $sVerifyNonce = HttpUtils.ParseUrl("nonce"); $sVerifyNonce = $_GET["nonce"];//"263014780"; // $sVerifyEchoStr = HttpUtils.ParseUrl("echostr"); $sVerifyEchoStr = $_GET["echostr"];//"P9nAzCzyDtyTWESHep1vC5X9xho/qYX3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp+4RPcs8TgAE7OaBO+FZXvnaqQ=="; // 需要返回的明文 $EchoStr = ""; $wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId); $errCode = $wxcpt->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr); if ($errCode == 0) { echo $sEchoStr; // // 验证URL成功,将sEchoStr返回 // HttpUtils.SetResponce($sEchoStr); } else { print("ERR: " . $errCode . "\n\n"); }
Sie können den obigen Code sehen. Er stimmt im Wesentlichen mit dem überein, was in der Demo angegeben wurde. Derselbe Code konnte vor einem Tag nicht überprüft werden. Nach einer Recherche wurde Folgendes festgestellt: Der Domainname bei der Überprüfung Die URL muss ein vertrauenswürdiger Domänenname sein. ps: Ich verwende Sina Cloud, habe aber keine Authentifizierung mit echtem Namen durchgeführt, daher besteht ein Risiko. Nachdem ich meinen echten Namen authentifiziert habe, wurde es erfolgreich geöffnet.
Erleuchtung: Offizielle Dokumente sind niemals falsch. Es ist notwendig, offizielle Dokumente sorgfältig zu studieren. Beim Aktivieren des Rückrufmodus des WeChat-Unternehmenskontos muss der -Domänenname ein vertrauenswürdiger Domänenname sein, was ebenfalls sehr wichtig ist .
Verwandte Empfehlungen:
Entwicklung eines öffentlichen PHP-WeChat-Kontos, Schlüsselwortantwort mit Umschaltfehler
Das obige ist der detaillierte Inhalt vonTeilen Sie Beispiele für das Öffnen und Verwenden des Rückrufmodus für PHP-WeChat-Unternehmenskonten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!