本篇文章的内容是PHP微信API的接入和关键字自动回复,现在分享给大家,有需要的朋友就可以参考一下本篇文章的内容了
https://blog.csdn.net/self_realian/article/details/70849159
公众账号的使用模式分类
1,编辑模式:有微信公众平台,提供给微信公众账号管理者的一个简单的,可视化操作的界面,主要是方便
微信公众账号管理者,能够进行一些简单的微信运营
2,开发者模式:就是调用一些微信的公用接口,来完成一些自身业务
立即学习“PHP免费学习笔记(深入)”;
应用中接入API接口步骤
1,填写服务器URL,token(注意:只支持80端口 也就是http服务必须在80端口打开,才能接收发送过来的消息
这里的url就是指第三方服务器的url,它的作用主要是接收微信推送的消息
这里的token是开发者与微信公众平台之间约定的口令,主要是用来验证第三方服务器真正的合法性
2,验证服务器地址的有效性,加密/校验流程如下:
(1)将token、timestamp、nonce三个参数进行字典序排序(这三个都是微信通过get方法传送过来的三个参数,通过这三个参数可以来验证请求是否来自于微信)
(2)将三个参数字符串拼接成一个字符串进行sha1加密
(3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
3,关于access_token
支点微信墙F2.0推出了!在前段时间推出的F1.0的基础上,新加了微信摇一摇和启动仪式的功能。修复了微信墙无默认头像的功能,修复了微抽奖的BUG,修复了微信公众平台有时接收信息不回复的功能。(原F1.0功能介绍:现场关注主办方微信公众号,粉丝迅速涨,让大家都High起来吧!互动加粉,触手可得!微信墙文字抽奖,一墙搞定!通过微信平台,你可以实现文字讨论,更能够实现投票,对对碰,交换名片等趣味性和互动
(1)access_token与appid,appsecred的关系
当你在微信公众平台注册微信公众账号时,微信公众平台为你生成了一个appid和appsecred,这两个值就是你在微信公众平台上的一个唯一标识
appid和appsecred(edd7d19a4d8c625ed1241244d17f78a9165)就是用来产生access_token,access_token其实就是一个动态口令,它有时间性,一段时间内有效
也可以将access_token理解成调用微信公众平台的一些接口的钥匙
特点:(1)唯一有效性(2)全局有效性 (至于access_token的详解,可以进入微信,查看“开发者文档”)
微信开放接口
1,获取access_token
2,获取微信服务器地址
说完这些之后,下边就是代码部分。首先提醒大家,要想添加自己的这些功能,首先要有一个自己的公网可以访问的域名,没有的可以在腾讯云或阿里云上申请一个(我用的框架是ThinkPHP3.2.2的)
[php] view plain copy
reponseMsg();
}
}
public function reponseMsg(){
$postArr = $GLOBALS['HTTP_RAW_POST_DATA'];
$postObj = simplexml_load_string( $postArr );
if( strtolower( $postObj->MsgType) == 'event'){
//如果是关注事件(subscribe)
if( strtolower($postObj->Event == 'subscribe') ){
//回复用户消息
$toUser = $postObj->FromUserName;
$fromUser = $postObj->ToUserName;
$time = time();
$msgType = 'text';
$content = '欢迎关注 书旅and良玉 微信公众账号'.$postObj->FromUserName.'-'.$postObj->ToUserName;
$template = "
%s
";
$info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);
echo $info;
}
}
//回复纯文本或单图文消息
if(($postObj->MsgType) == 'text' && trim($postObj->Content) == '夏目友人帐'){
$toUser = $postObj->FromUserName;
$fromUser = $postObj->ToUserName;
$arr = array(
array(
'title'=>'夏目友人帐',
'description'=>"此生无悔入夏目",
'picUrl'=>'http://img4.duitang.com/uploads/item/201508/16/20150816015528_X8dKY.jpeg',
'url'=>'http://www.shulvchen.cn',
),
);
$template = "
%s
".count($arr)."
";
foreach($arr as $k=>$v){
$template .="-
";
}
$template .="
";
echo sprintf($template, $toUser, $fromUser, time(), 'news');
}else{
switch( trim($postObj->Content) ){
case 'bb':
$content = '我喜欢你';
break;
case '良玉':
$content = '我喜欢你';
break;
case '书旅':
$content = '加油';
break;
case 'dsdf':
$content = '不愿错过他';
break;
case '垒哥':
$content = '垒哥已死,有事儿烧纸';
break;
case '书旅and良玉':
$content = 'Forever with you';
break;
case '学弟':
$content = '书旅是你学长';
break;
default:
$content = "百度一下,你就知道(点击文字,进入百度)";
}
$template1 = "
%s
";
$fromUser = $postObj->ToUserName;//消息从哪里来
$toUser = $postObj->FromUserName;//发送给谁
$time = time();
//$content = '我喜欢你';
$msgType = 'text';
echo sprintf($template1, $toUser, $fromUser,$time, $msgType, $content);
}
}
}
希望这篇博客对跟我一样喜欢微信开发的小菜鸟们有所帮助
相关推荐:










