Le contenu de cet article est un tutoriel complet sur le développement de comptes publics WeChat. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
En raison de besoins professionnels, ceci. Au cours des deux dernières années, de nombreux projets ont été réalisés pour les comptes officiels et les mini-programmes WeChat. C'est pourquoi j'ai l'intention d'écrire un tutoriel de production complet. Bien entendu, le meilleur tutoriel est la documentation de la plateforme de travail WeChat. Je vais juste parler du processus de production dans mon travail ici. Le code source de tous les articles associés est hébergé sur mon propre github Bienvenue à suivre : cliquez sur l'adresse pour ouvrir le lien. Commençons notre tutoriel.
WeChat : un logiciel de chat instantané, une relation one-to-one
Plateforme publique WeChat : une plateforme one-to -beaucoup de relations.
Compte d'abonnement : 1 les messages peuvent être envoyés à des individus ou à des médias en groupe chaque jour, et il n'y a pas de personnalisation par menu par défaut. Numéro de serveur : Pour les entreprises ou les banques, 4 messages peuvent être envoyés en masse chaque mois, avec un menu personnalisé par défaut. Si l'entité exploitante est une organisation (telle qu'une entreprise, un média ou une organisation caritative), vous pouvez demander un compte de service. Les entités opérationnelles qui sont des organisations et des individus peuvent demander des comptes d'abonnement, mais les individus ne peuvent pas demander de comptes de service.
1, mode édition : utilisez directement les opérations en arrière-plan fournies par la plateforme publique WeChat pour l'interaction de l'utilisateur. Le mode édition peut être utilisé dans les scénarios suivants : Opérateurs sans capacités de développement, principalement des comptes publics pour la promotion de la marque, les médias d'information et le service client en libre-service, Au début de l'exploitation, de nombreuses fonctions ne sont pas nécessaires Mises à niveau du système en mode développement, pannes et autres circonstances particulières
2. code d'interface pour mettre en œuvre les besoins des utilisateurs Communication
Inscrivez-vous à la plateforme publique et disposez d'un serveur en ligne
Principe :
Sélectionnez les objets et les matériaux pour la messagerie de masse :
Activez le menu personnalisé et activez :
Cliquez pour afficher et accéder à l'interface de configuration :
La description ci-dessus concerne principalement l'utilisation du mode d'édition. Je pense que beaucoup de gens devraient pouvoir l'utiliser. en fait, cela ressemble à la façon dont nous éditons habituellement les articles et les messages dans les forums.
Principe :
Remarque : après avoir activé le mode développeur, certaines fonctions du mode édition ne peuvent pas être utilisées normalement. Autrement dit, il existe un conflit entre le mode développeur et le mode éditeur. Entrez dans l'interface des paramètres :
Modifier la configuration :
Le résultat du paramétrage est le suivant : remplissez l'adresse du fichier de votre serveur, le jeton, cliquez sur Soumettre et vérifiez. Si soumis et vérifié, entrez en mode développeur
public function valid(){ //获取随机字符串 $echoStr = input("echostr"); if($echoStr){ // 验证接口的有效性,由于接口有效性的验证必定会传递echostr 参数 if($this ->checkSignature()){ echo $echoStr; exit; } }else{ $this->responseMsg(); } } protected function checkSignature() { // 微信加密签名 $signature = input("signature"); $timestamp = input("timestamp");//时间戳 $nonce =input("nonce");//随机数 $token = "weixin"; //token值,必须和你设置的一样 $tmpArr =array($token,$timestamp,$nonce); sort($tmpArr,SORT_STRING); $tmpStr = implode($tmpArr); $tmpStr =sha1($tmpStr); if($tmpStr == $signature){ return true; }else{ return false; } }
Concernant la source des variables dans le code ci-dessus, WeChat a des instructions détaillées, et le compte public I construit La version PHP7.0 et le framework TP5.0 sont utilisés. Expliquez-le ici.
Le code ci-dessus ne sera exécuté qu'une seule fois. Après avoir activé le mode développeur, il ne sera pas exécuté uniquement le
responseMsg
<🎜 dans le. le code ci-dessus sera exécuté > Méthode. Essayons d'abord de télécharger un code de test pour répondre à un message texte et voir s'il y a une réponse. Le code est le suivant :public function responseMsg() { //get post data, May be due to the different environments $postStr = file_get_contents('php://input'); //extract post data if (!empty($postStr)){ /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection, the best way is to check the validity of xml by yourself */ libxml_disable_entity_loader(true); $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!empty( $keyword )) { $msgType = "text"; $contentStr = "Welcome to wechat world!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } }else { echo ""; exit; } }
Si le code ci-dessus apparaît, cela signifie que nous avons testé avec succès. Ensuite, nous commençons à obtenir la valeur de access_token. Ce paramètre est très important pour nous. Étant donné que
access_token
est l'identifiant d'appel d'interface unique au monde du compte officiel, le compte officiel doit utiliseraccess_token lors de l'appel de chaque interface. Les développeurs doivent le stocker correctement. Le stockage de access_token doit réserver au moins 512 espace de caractères. La période de validité du access_token est actuellement de 2 heures et doit être actualisée régulièrement. Une acquisition répétée entraînera la dernière <🎜 obtenue. >access_token n'est pas valide. access_token est l'authentification d'identité. Les autres interfaces doivent essentiellement utiliser cette valeur pour la vérification. 7.acquisition access_token : (peut être testé localement)
Les résultats sont les suivants :
Les résultats sont les suivants :
Nous avons commencé à encapsuler le code ci-dessus, car access_token peut n'appelez que 2000 fois par jour, nous devons donc le mettre en cache pour pouvoir obtenir l'effet de réutilisation,
// 获取请求的地址的方法
i
f(!function_exists("http_curl")){ function http_curl($url,$data =array(),$method ="get",$returnType ="json") { //1.开启会话 $ch = curl_init(); //2.设置参数 curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); if($method!="get"){ curl_setopt($ch,CURLOPT_POST,TRUE); curl_setopt($ch,CURLOPT_POSTFIELDS,$data); } curl_setopt($ch,CURLOPT_URL,$url); //执行会话 $json = curl_exec($ch); curl_close($ch); if($returnType == "json"){ return json_decode($json,true); } return $json; } } if(!function_exists('get_access_token')){ function get_access_token() { $appid = "wx1ba8f59d9e2c0be0"; //微信的appid $secret ="9e65155599fb9ec047455e197ff6e121"; //微信的开发者密钥 // 读取缓存中的内容 include_once "MyMemcache.php"; //引入缓存方法文件 $obj = new \MyMemcache("47.104.71.253"); $value = $obj ->get($appid); if(!$value){ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret; $result = http_curl($url); $value = $result['access_token']; $obj->set($appid,$value,7000); } return $value; } }
上述代码就是我对这两个方法的封装,其中我们用到了缓存技术:缓存的方法如下:
// memcache操作类
class MyMemcache{ public $conn; public $isMemcache =true; public function __construct($host="127.0.0.1",$port='11211') { // 建立连接 if(class_exists('MyMemcache')){ $obj =new \Memcache(); }else{ $this ->isMemcache =false; $obj =new \Memcached(); } $obj ->addServer($host,$port); $this ->conn =$obj; } //获取数据 public function get($key) { return $this->conn->get($key); } //设置数据 public function set($key,$value,$expire=0) { if($this->isMemcache){ $this->conn->set($key,$value,0,$expire); }else{ // Memcached扩展的操作方式 $this->conn->set($key,$value,$expire); } } }
结合上述的三个方法,我们就可以实现获取access_token的值,并保存在缓存系统,7000s去重新获取一次。
上述的步骤完成,我们就算是对微信公众号的开发的基本准备全部准备完毕,接下来就开始对着微信开发者文档进行开发和数据的替换了。第一节先讲述到这里.....
相关文章推荐:
1.微信公众号开发完整教程二
2.微信公众号开发完整教程三
3.微信公众号开发完整教程四
相关视频推荐:
1.php微信接口开发实战项目视频教程 聊天机器人+微信支付
2.开发微信小程序视频教程
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!