本文写的是用户公众号输入关键词,微信服务器被动回复内容。
首先在后台上传关键词与回复内容
前台页面内容如下
<form class="layui-form" action="{:U('replyText')}" style="padding-right: 10px;" method="post">
<div class="layui-form-item">
<label class="layui-form-label">回复关键词</label>
<div class="layui-input-block">
<input type="text" name="keyword" required lay-verify="required" placeholder="请输入关键词" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">回复内容</label>
<div class="layui-input-block">
<textarea name="content" required lay-verify="required" placeholder="请输入内容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="SBT">提交</button>
<a href="{:U('keywords',['type'=>'text'])}" class="layui-btn layui-btn-primary">返回</a>
</div>
</div>
</form>
<script>
// alert('123');
layui.use('form', function(){
var form = layui.form
form.on('submit(SBT)', function(data){
var load = layer.load();
$.post("{:U('replyText')}",data.field,function (res) {
//replyText即为上传文本的方法
layer.alert(res.msg);
layer.close(load);
// layer.msg(res.msg,{time:1000},function () {
// window.location.href=res.url;
// });
})
return false;
});
});
</script>
后台控制器代码
mp_rule 表结构
mp_reply_text表结构
// 上传文本
public function replytext($type=""){
if(empty($type)){
$type = 'text';
}
$keyword=I('post.keyword');
$content = I('post.content');
$mp=$this->mp;
$mp_id=$mp['id'];
$data2['mp_id']=$mp_id;
$data2['keyword']=$keyword;
$data2['type']='text';
$data2['status'] = $mp['is_use'];
$data1['content'] = $content;
$ret = M('mp_reply_text')->add($data1);
$data2['reply_id'] = $ret;
M('mp_rule')->add($data2);
$this->ajaxReturn(array('msg'=>'上传成功'));
}
添加进数据表中后,当用户像公众号输入关键字,就需要回复内容了
这是lanewechat中的wechatrequest.php中的部分代码,当用户输入的是文字时回复内容
public static function text(&$request){
$mpid = $_GET['id'];
$content = $request['content'];
$where['mp_id'] = $mpid;
$where['keyword'] = $content;
$data = M('mp_rule')->where($where)->find();
if($data){
//发送消息中有这个关键字
$reply_id = $data['reply_id'];
$type = $data['type'];
if($type == 'text'){
$reply = M('mp_reply_text')->find($reply_id);
$reply_text = $reply['content'];
return ResponsePassive::text($request['fromusername'], $request['tousername'], $reply_text);
}
echo "success";
}
}
此时向公众号发送关键字时会有文字回复