登录  /  注册

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

黄舟
发布: 2017-08-31 11:52:33
原创
3335人浏览过

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

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

课程播放地址:http://www.php.cn/course/320.html

该老师讲课风格:

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

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

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

1. index.php    

<?php
include_once &#39;lib.inc.php&#39;;
  
$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(&#39;TOKEN is not defined!&#39;);
      }
        
      $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 &#39;Message: &#39; .$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, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
      $this->zcLog(TRUE,$postObj);
        
      $fromUsername = $postObj->FromUserName;
      $toUsername = $postObj->ToUserName;
      $MsgType = $postObj->MsgType;
        
      if($MsgType == &#39;event&#39;){//执行事件相应
        $Event = $postObj->Event;
        switch ($Event) {
          case &#39;subscribe&#39;://关注
            break;
          case &#39;unsubscribe&#39;://取消关注
            break;
          case &#39;SCAN&#39;://扫描
            break;
          case &#39;LOCATION&#39;://地址
            break;
          case &#39;CLICK&#39;://点击时间
            break;
          case &#39;VIEW&#39;://跳转
            break;
          case &#39;card_pass_check&#39;://卡券审核通过
            break;
          case &#39;card_not_pass_check&#39;://卡券审核失败
            break;
          case &#39;user_get_card&#39;://用户领取卡券
            break;
          case &#39;user_del_card&#39;://用户删除卡券
            break;
          case &#39;user_view_card&#39;://用户浏览会员卡
            break;
          case &#39;user_consume_card&#39;://用户核销卡券
            break;
          case &#39;merchant_order&#39;://微小店用户下单付款
            break;
          default:
            break;
        }
      }
      else{
        switch ($MsgType) {
          case &#39;text&#39;://文本格式
            break;
          case &#39;image&#39;://图片格式
            break;
          case &#39;voice&#39;://声音
            break;
          case &#39;video&#39;://视频
            break;
          case &#39;shortvideo&#39;://小视频
            break;
          case &#39;location&#39;://上传地理位置
            break;
          case &#39;link&#39;://链接相应
            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[&#39;errcode&#39;] = $errcode;
    $this->returnAy[&#39;errmsg&#39;] = $errmsg;
    $this->returnAy[&#39;errtime&#39;] = 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中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号