微信公众号开发第一天---接入

二次信任 提交于 2019-11-29 23:52:05

微信公众号开发

微信相关介绍

什么是微信

是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序。 2018 年 3 月活跃用户超过 10 亿。

什么是微信公众号

微信公众平台于2012年08月23日正式上线,曾命名为“官号平台”和“媒体平台”,创造更好的用户体验,形成一个不一样的生态循环。微信公众号就是公众平台的一个账号。

微信公众号的作用

  • 对于个人来讲,公众号是一个获取资讯的窗口,也是一种享受服务的窗口。
  • 对于企业来讲,公众号是一个宣传营销渠道,也是一种服务获客渠道。
  • 对于微信来讲,公众号提高了用户和微信的粘度。

微信公众号的特点

  • 微信用户体量大
  • 免安装
  • 易于传播

为什么要学习公众号开发

  1. 企业需要。
  2. 个人需要。

公众号开发的原理

公众号开发的流程

  1. 申请公众号
  2. 搭建 HTTP 服务
  3. 入口文件编写
  4. 开发配置

1. 申请公众号

申请地址是 https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN

公众号的区别

\群发消息数量申请资质微信支付权限
订阅号 一天一条 个人和企业均可
服务号 一个月四条 必须是企业 微信认证后可以获得

2. 搭建 HTTP 服务

  1. 云应用
  2. 云服务器
  3. 内网映射

3. 入口文件编写

<?php  /**    * wechat php test    */    //define your token  define("TOKEN", "weixin");  $wechatObj = new wechatCallbackapiTest();  $wechatObj->valid();    class wechatCallbackapiTest  {      public function valid()      {          $echoStr = $_GET["echostr"];            //valid signature , option          if($this->checkSignature()){              echo $echoStr;              exit;          }      }        public function responseMsg()      {          //get post data, May be due to the different environments          $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];              //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;          }      }                private function checkSignature()      {          // you must define TOKEN by yourself          if (!defined("TOKEN")) {              throw new Exception('TOKEN is not defined!');          }                    $signature = $_GET["signature"];          $timestamp = $_GET["timestamp"];          $nonce = $_GET["nonce"];                            $token = TOKEN;          $tmpArr = array($token, $timestamp, $nonce);          // use SORT_STRING rule          sort($tmpArr, SORT_STRING);          $tmpStr = implode( $tmpArr );          $tmpStr = sha1( $tmpStr );                    if( $tmpStr == $signature ){              return true;          }else{              return false;          }      }  }    ?>

4. 开发配置

配置位置 微信后台 -> 开发 -> 基本配置

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!