Cet article présente principalement l'ouverture et l'utilisation du mode de rappel du compte PHP WeChat Enterprise. Il analyse l'ouverture et l'utilisation du mode de rappel du compte PHP WeChat Enterprise sous la forme d'exemples spécifiques. commentaires pour faciliter la compréhension des lecteurs. Il est obligatoire que les amis puissent s'y référer. J'espère qu'il sera utile à tout le monde de comprendre comment activer et utiliser le mode de rappel du compte d'entreprise WeChat.
Stage d'été, le leader a organisé le développement d'un compte d'entreprise WeChat. J'enregistrerai les problèmes rencontrés ici et les partagerai avec des amis qui rencontrent le même problème. J'espère que cela sera utile à mes amis. Inutile de dire qu'il n'est pas nécessaire d'en dire plus sur la partie enregistrement du compte d'entreprise WeChat. Aujourd'hui, nous allons enregistrer le compte d'entreprise WeChat - le mode de rappel ouvre la partie php.
En fait, la documentation de développement de WeChat est en effet très détaillée, et en utilisant la démo officielle, vous pouvez l'utiliser directement à condition d'apporter de légères modifications. Mais pourquoi cela provoque-t-il toujours une erreur ?
Ci-dessous, je publierai d'abord le code pour activer le mode de rappel une fois ma vérification réussie
<?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"); }
Vous pouvez voir le code ci-dessus. Il est fondamentalement cohérent avec ce qui a été donné dans la démo. Le même code n'a pas pu être vérifié il y a un jour. Après recherche, il a été constaté que : Le nom de domaine lors de la vérification. L'URL doit être un nom de domaine approuvé. ps : j'utilise Sina Cloud, mais je n'ai pas effectué d'authentification par mon nom réel, il y a donc un risque. Après avoir authentifié mon vrai nom, il a été ouvert avec succès.
Illumination : Les documents officiels ne se trompent jamais. Il est nécessaire d'étudier attentivement les documents officiels. Lors du processus d'activation du mode de rappel du compte d'entreprise WeChat, le nom de domaine doit être un nom de domaine de confiance, ce qui est également très important .
Recommandations associées :
Problèmes de publication à l'échelle du réseau de la plate-forme tierce de compte public php WeChat
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!