传智和黑马的微信公众平台开发视频教程资源推荐
微信公众平台,给个人、企业和组织提供业务服务与用户管理能力的全新服务平台。微信公众平台主要有实时交流、消息发送和素材管理。用户可以对公众账户的粉丝分组管理、实时交流,同时也可以使用高级功能-编辑模式和开发模式对用户信息进行自动回复。《传智、黑马微信公众平台开发视频教程》是由传智播客和黑马程序员联合出品的微信公众平台开发视频教程。
课程播放地址:/link?link=http://www.swvq.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;
}
}
本文出至:学新通
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通
- 本文地址: https://www.swvq.com/boutique/detail/15730
- 联系方式: luke.wu@swvq.com
- 来源链接: www.php.cn/weixin-kaifa-377591.html
系列文章
更多
精彩评论
-
windows上查看nginx是否启动
PHP中文网 04-19 -
2023年最新的28道PHP面试题附答案
PHP中文网 03-27 -
docker hub 进不去怎么办
PHP中文网 03-15 -
推荐五款xml编辑工具
PHP中文网 03-04 -
navicat怎样清除注册表
PHP中文网 04-05 -
ChatGPT应用通过Axios+EventSource使用GPT3.5 API
uWydnA 03-13 -
强力推荐10款好看使用的Bootstrap后台管理系统模板
PHP中文网 03-09 -
vscode怎么调整代码大小两种方法
PHP中文网 03-11 -
navicat删除的数据能还原吗
PHP中文网 04-09 -
navicat连接sqlserver数据库
PHP中文网 04-03