微信对接自动回复自定义菜单
第一步;进入微信公众平台 注册一个账号
https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN
第二步
登录微信公众平台
进入微信公众平台
进入微信公众开发者测试平台
为什么用测试平台? 因为权限问题
第三步
微信开发者文档:打开接口文档
获取access_token
查看操作步骤
1.填写服务器配置
2.验证服务器有效性
3.根据接口实现业务逻辑
第四步验证服务器有效性
如果不想先验证,可以跳过
第五步在代码中调用发消息的方法
$this->方法
并且在微信公众平台接口配置 进行对接
对接在接口配置里
文本回复:
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$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;
}
}
回复的内容可自己定义 在文档消息管理的被动消息回复管理
完成微信信息自动回复
如果想回复为图片信息
$msgType = "text";
if(!empty( $keyword ))
{
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
这里面的参数:
$textTpl 是不是是文本类型的?
所以我们要改成image 的类型:
$imgTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</ Image >
</xml>";
获取图片id成功返回{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}
自定义菜单
首先查看文档
第一步对接
第二步建一个文件
从文档粘贴链接地址请求
获得地址
从新打开一个页面粘贴上地址
获取到access_token
access_token测试号限制每天请求不能超过200次
这里可以做个缓存解决这个问题,设施过期时间
因为url获取的是json数据
转化为数据
用json_encode)(值,true);
定义一个变量等于这个值
就拿到这个access_token的值
新建个文件包含着当前文件
调用这个方法
按照文档写个url
用curl模拟个post请求
根据文档粘贴菜单实例
获取用户信息
get
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
access_token: opened前面已经获取到了
让后获取用户信息
"openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl": " http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[
"PRIVILEGE1"
"PRIVILEGE2"
],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"