小白的微信开发第一天,废话少说直接动手做!
【订阅号】
1.进入官网微信开发公众平台,选择立即注册
2.根据实际情况选择要注册的账号类型(个人一般订阅号即可)
公众平台服务号、订阅号、企业号的相关说明
3.1 填写邮箱后选择激活邮箱,登录邮箱打开邮件复制验证码粘贴到邮箱验证码
3.1.1 发送验证码
3.1.2 复制验证码
3.1.3 粘贴验证码并填写信息,点击注册
3.2 选择类型(根据自己实际情况选择)
3.2.1 选择地区
3.2.2 选择服务类型(我选择的是订阅号)
ps:类型一旦选择不可修改!
3.3 信息登记
3.3.1 根据自己情况选择(我选择的为个人)
3.3.2 填写基本信息并扫码验证
ps:主体信息提交后不可修改
3.4 公众号信息填写
3.4.1 填写信息
3.4.2 前往公众平台
公众平台页面
选择右上角--》账号详情可上传头像和获取订阅号二维码
到此微信订阅号注册完成,接下来进入开发环节,没有服务器的可以选择公众平台测试账号
【微信开发】
1.基本配置
订阅号的主页面---》开发---》基本配置
勾选我同意---》成为开发者
ps:
成为微信公众平台开发者,你将可以使用公众平台的开发接口,在你自身服务器上接收用户的微信消息,并可按需回复。此外,我们还提供了更多更高级的接口来完善公众号的功能:
1. 会话界面的自定义菜单
2. 多客服接口,提供贴心快捷的客服服务
3. 获取用户地址位置,精确提供服务
4. 高级群发接口,实现更灵活的群发能力
5. 用户分组接口,方便管理用户
还有很多接口,等你来体验。
2.启用开发者密码(密码需要自己保存)
2.1 启用
2.2 按流程操作
2.2.1 身份确认
2.2.2 密码验证
2.2.3 查看开发者密码,确定进入下一步设置白名单
2.2.4 设置白名单(很重要,昨天就被这家伙给坑了)
2.2.4.1 获取到自己的IP外网
输入IP确定后,然后扫码确认即可
3. 启用服务器配置
3.1 修改配置
3.2 配置页面
3.2.1 微信端配置
1. URL是开发者用来接收微信消息和事件的接口URL,你服务器的公网IP或者域名
2. Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)
3. EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥
3.2.2 服务器端配置
https://github.com/wangyang0210/WeCheat/tree/master/checkToken
通过远程连接工具将此文件放入到你服务器网页的根目录下,index.php中的token值要和微信端填写的token值一致,否则会验证不通过
3.2.3 提交验证
成功后点击启用
ps:
3.3 撸代码
写了这么多终于可以撸代码了,代码如下
参考文档: 被动回复用户消息
index.php
<?php $postStr = file_get_contents("php://input"); file_put_contents('./data.txt', $postStr); if (!empty($postStr)){ 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 )) { if ($keyword == '图片') { $imgtml = " <xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[image]]></MsgType> <Image><MediaId><![CDATA[%s]]></MediaId></Image> </xml> "; $imgid = "w9ffB-g3DM1yZWiGbx7rHm9IkW9mOv7vs4WRMwTEfr0v9lsiMy9DTc6izeqrJqUL"; $resultStr = sprintf($imgtml,$fromUsername,$toUsername,$time,$imgid); echo $resultStr; }else if ($keyword == '音乐') { $musicTml = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[有我不怕]]></Title> <Description><![CDATA[送给我的小媳妇儿]]></Description> <MusicUrl><![CDATA[%s]]></MusicUrl> <HQMusicUrl><![CDATA[%s]]></HQMusicUrl> </Music> </xml>"; $musicUrl = "http://wangnana.cn/love.mp3"; $resultStr = sprintf($musicTml,$fromUsername,$toUsername,$time,$musicUrl,$musicUrl); echo $resultStr; }else if ($keyword == '视频') { $videotml =" <xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[video]]></MsgType> <Video> <MediaId><![CDATA[%s]]></MediaId> <Title><![CDATA[视频回复]]></Title> <Description><![CDATA[测试视频]]></Description> </Video> </xml>"; $videoid = "8OgNkp7FKFpwd3NRBIy10i8611O6UHumzW_wjTx3W1X-c5rlQ-GAUaEgS3vnREM1"; $resultStr = sprintf($videotml,$fromUsername,$toUsername,$time,$videoid); echo $resultStr; }else{ $msgType = "text"; $contentStr = "欢迎来到我们的世界,接下来是吃狗粮的时间!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; } }else{ echo "啊哦,要亲亲(づ ̄3 ̄)づ╭❤~"; } }else { echo ""; exit; }
3.4 如何获取视频/图片的media_id(没写方法,利用开发者工具中的接口调试工具来获取的)
3.4.1 获取access_token的值
这时候就用到前面基本配置的两个值了还有我们的白名单,如果出问题那就请查看你现在的外网IP是否在白名单中,如果你的AppSecret没保存那只好重置开发者密码咯
都没有问题后,返回的值就是我们需要的access_token咯
3.4.2 获取到图片的media_id
接口类型--->基础支持
接口列表---->多媒体文件上传接口/media/upload
参数列表
access_token ---->刚才获取的token
type---->img
media---->选择上传的文件
我上传的是2.jpg
点击检查获取media_id
测试效果:
一通百通,这个是写死的,接下来就是把死的转活,视频的同理,音乐的直接文档就可以搞出来,让我偷下懒吧~
一上午都在弄这个,有点浪费时间,不过加深了自己的理解也是很不错的一件事
如果出错请看https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433747234,当然也可以和我这个小白分享,我可是很愿意解决问题的,时间允许的情况下哈~
来源:https://www.cnblogs.com/wangyang0210/p/9797234.html