• 技术文章 >微信小程序 >微信开发

    传智和黑马的微信公众平台开发视频教程资源推荐

    黄舟黄舟2017-08-31 11:52:33原创1272
    微信公众平台,给个人、企业和组织提供业务服务与用户管理能力的全新服务平台。微信公众平台主要有实时交流、消息发送和素材管理。用户可以对公众账户的粉丝分组管理、实时交流,同时也可以使用高级功能-编辑模式和开发模式对用户信息进行自动回复。《传智、黑马微信公众平台开发视频教程》是由传智播客和黑马程序员联合出品的微信公众平台开发视频教程。

    E(QI8~C8Z3[%1`N5VYJKWVE.png

    课程播放地址://m.sbmmt.com/course/320.html

    该老师讲课风格:

    讲课亲切自然,朴实无华,没有矫揉造作,也不刻意渲染,而是娓娓而谈,细细道来,师生之间在一种平等、协作、和谐的气氛下,进行默默的情感交流,将对知识的渴求和探索融于简朴、真实的教学情景之中,学生在静静的思考、默默的首肯中获得知识

    本视频中较为难点是微信API接口分析了:

    微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中。
    微信支付、微信红包、微信卡券、微信小店。

    1. index.php

    <?php
    include_once 'lib.inc.php';
      
    $wcObj = new WeChat("YOUKUIYUAN");
    $wcObj->wcValid();

    2. 微信入口类

    <?php
    /**
     * Description of wechat
     *
     * @author Administrator
     */
    class WeChat extends WxApi{
      public $token = "";
      //put your code here
      public function __construct($token = "") {
        parent::__construct();
        $this->token = $token;
      }
      
      public function wcCheckSignature(){
        try{
          if (empty($this->token)) {
            throw new Exception('TOKEN is not defined!');
          }
            
          $signature = $_GET["signature"];
          $timestamp = $_GET["timestamp"];
          $nonce = $_GET["nonce"];
              
          $token = $this->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;
          }
        } 
        catch (Exception $e) {
          echo 'Message: ' .$e->getMessage();
        }
      }
        
      public function wcValid(){
        $echoStr = isset($_GET["echostr"]) && !empty($_GET["echostr"]) ? addslashes($_GET["echostr"]) : NULL;
        if(is_null($echoStr)){
          $this->wcMsg();
        }
        else{
          //valid signature , option
          if($this->wcCheckSignature()){
            echo $echoStr;
            exit;
          }
          else{
            exit();
          }
        }
      }
        
      public function wcMsg(){
        //get post data, May be due to the different environments
        $postStr = isset($GLOBALS["HTTP_RAW_POST_DATA"]) && !empty($GLOBALS["HTTP_RAW_POST_DATA"]) ? $GLOBALS["HTTP_RAW_POST_DATA"] : "";
        if(!empty($postStr)){
          libxml_disable_entity_loader(true);
          $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
          $this->zcLog(TRUE,$postObj);
            
          $fromUsername = $postObj->FromUserName;
          $toUsername = $postObj->ToUserName;
          $MsgType = $postObj->MsgType;
            
          if($MsgType == 'event'){//执行事件相应
            $Event = $postObj->Event;
            switch ($Event) {
              case 'subscribe'://关注
                break;
              case 'unsubscribe'://取消关注
                break;
              case 'SCAN'://扫描
                break;
              case 'LOCATION'://地址
                break;
              case 'CLICK'://点击时间
                break;
              case 'VIEW'://跳转
                break;
              case 'card_pass_check'://卡券审核通过
                break;
              case 'card_not_pass_check'://卡券审核失败
                break;
              case 'user_get_card'://用户领取卡券
                break;
              case 'user_del_card'://用户删除卡券
                break;
              case 'user_view_card'://用户浏览会员卡
                break;
              case 'user_consume_card'://用户核销卡券
                break;
              case 'merchant_order'://微小店用户下单付款
                break;
              default:
                break;
            }
          }
          else{
            switch ($MsgType) {
              case 'text'://文本格式
                break;
              case 'image'://图片格式
                break;
              case 'voice'://声音
                break;
              case 'video'://视频
                break;
              case 'shortvideo'://小视频
                break;
              case 'location'://上传地理位置
                break;
              case 'link'://链接相应
                break;
              default:
                break;
            }        
          }
            
          ////////////////////////////////////////////////////////////////////
          $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;
        }
      }
        
      //日志LOG
      public function zcLog($errcode , $errmsg){
        $this->returnAy = array();
        $this->returnAy['errcode'] = $errcode;
        $this->returnAy['errmsg'] = $errmsg;
        $this->returnAy['errtime'] = date("Y-m-d H:i:s",time());
        $logfile = fopen("logfile_".date("Ymd",time()).".txt", "a+");
        $txt = json_encode($this->returnAy)."\n";
        fwrite($logfile, $txt);
        fclose($logfile);
        //return $this->returnAy;
      }
        
    }

    以上就是传智和黑马的微信公众平台开发视频教程资源推荐的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:视频 开发 平台
    上一篇:极客学院微信小程序从基础到实战视频资料分享 下一篇:0基础微信开发入门视频教程的资料分享
    线上培训班

    相关文章推荐

    • 如何解决微信支付API v3回调通知出现乱码问题• 总结关于Referer丢失的问题(微信H5支付)• 【记录】PHP微信小程序 微信支付v3的使用• 分享微信支付v3版 php解密解密代码• uni-app开发H5端和原生H5开发怎么选择

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网