实现简单的微信公众号开发

    xiaoxiao2023-03-25  9

    1.准备工作

    首先你得有一个公众号

    打开  mp.weixin.qq.com 注册一个微信公众平台账号 

    每个邮箱仅能申请一种帐号:公众号或企业号

    我们创建一个公众号,个人性质的可以创建一个订阅号

    进入订阅号 我们可以创建一个自动回复 或者自定义菜单 

    也可以进入开发者模式

    但是启用开发者模式之后 编辑模式的功能就不可以用啦

    然后我们在权限部分发现 订阅号给予的权限相对较少 次数限制比较严重

    所以我们在测试开发的时候 可以使用微信测试号进行开发

    测试号如何使用呢

    打开浏览器,这里以IE为例。输入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    用手机登录你的微信,使用微信中的“扫一扫”功能,扫描上面网页中的二维码

    点击确认登录,登录成功!

    网页中提供了测试的微信号,及二维码等信息。

    填写微信帐号连接的URL网址,如果没有,可以购买一个云服务器。

    购买云服务器请自行百度

    然后输入你的令牌号到Token(任意字符串,必须与你的URL网页中的Token值相同)

    在手机微信号扫描网页中的二维码,就可以将你的公众测试帐号添加到微信的订阅号里了。

    测试号在接口调用上几乎没有限制

    不过一天只能调用2000次access_token 一点要记得做缓存 !!不然不知不觉就超了

    2.进入开发

    准备工作做完了,我们有了一个测试公众号 服务器配置也填写好了

    下一步要做的就是 验证服务器的有效性

    开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:

    参数描述signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。timestamp时间戳nonce随机数echostr随机字符串

    开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

    加密流程:

    加密/校验流程如下: 1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 很显然 他加密和解密的流程是一样的 用到了对称加密技术

    在验证的时候需要注意的是 定义一个 Token常量 必须要跟上一步填写的Token值一致

    服务器验证成功之后 我们在调用微信接口的时候 都需要与微信进行一个安全验证

    验证时候 微信会给我们一个access_token 进行安全验证

    所以我们在做开发时 第一步要获取微信的 access_token

    那么 如何获取呢

    我们只要get方式请求下面这个链接

    里面填写你的APPID 和 APPSECRET

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 注意调用所有微信接口时均需使用https协议

    返回下面这个样子的json串

    {"access_token":"ACCESS_TOKEN","expires_in":7200}

    我们可以看出来 ACCESS_TOKEN的失效时间为7200秒 所以我们可以给他设置一个小于7200的缓存来防止重复调用

    然后我们先来创建一个 自定义菜单

    http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

    参数说明

    参数是否必须说明button是一级菜单数组,个数应为1~3个sub_button否二级菜单数组,个数应为1~5个type是菜单的响应动作类型name是菜单标题,不超过16个字节,子菜单不超过40个字节keyclick等点击类型必须菜单KEY值,用于消息接口推送,不超过128字节urlview类型必须网页链接,用户点击菜单可打开链接,不超过256字节media_idmedia_id类型和view_limited类型必须调用新增永久素材接口返回的合法media_id

    只要填上正确的参数 微信自定义菜单就修改成功了!

    3.被动图片回复消息

    首先你要有图片

    所以 先新增一个临时素材

    http请求方式: POST/FORM,需使用https https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE 调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件): curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"

    参数说明

    参数是否必须说明access_token是调用接口凭证type是媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)media是form-data中媒体文件标识,有filename、filelength、content-type等信息

    返回说明

    正确情况下的返回JSON数据包结果如下:

    {"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789} 参数描述type媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)media_id媒体文件上传后,获取时的唯一标识created_at媒体文件上传时间戳

    错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):

    {"errcode":40004,"errmsg":"invalid media type"}

    最后获取用户信息

    请求方法

    http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

    参数说明

    参数描述access_token网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同openid用户的唯一标识lang返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

    微信开发其实非常简单 ,多看接口文档

    1.准备工作

    首先你得有一个公众号

    打开  mp.weixin.qq.com 注册一个微信公众平台账号 

    每个邮箱仅能申请一种帐号:公众号或企业号

    我们创建一个公众号,个人性质的可以创建一个订阅号

    进入订阅号 我们可以创建一个自动回复 或者自定义菜单 

    也可以进入开发者模式

    但是启用开发者模式之后 编辑模式的功能就不可以用啦

    然后我们在权限部分发现 订阅号给予的权限相对较少 次数限制比较严重

    所以我们在测试开发的时候 可以使用微信测试号进行开发

    测试号如何使用呢

    打开浏览器,这里以IE为例。输入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    用手机登录你的微信,使用微信中的“扫一扫”功能,扫描上面网页中的二维码

    点击确认登录,登录成功!

    网页中提供了测试的微信号,及二维码等信息。

    填写微信帐号连接的URL网址,如果没有,可以购买一个云服务器。

    购买云服务器请自行百度

    然后输入你的令牌号到Token(任意字符串,必须与你的URL网页中的Token值相同)

    在手机微信号扫描网页中的二维码,就可以将你的公众测试帐号添加到微信的订阅号里了。

    测试号在接口调用上几乎没有限制

    不过一天只能调用2000次access_token 一点要记得做缓存 !!不然不知不觉就超了

    2.进入开发

    准备工作做完了,我们有了一个测试公众号 服务器配置也填写好了

    下一步要做的就是 验证服务器的有效性

    开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:

    参数描述signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。timestamp时间戳nonce随机数echostr随机字符串

    开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

    加密流程:

    加密/校验流程如下: 1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 很显然 他加密和解密的流程是一样的 用到了对称加密技术

    在验证的时候需要注意的是 定义一个 Token常量 必须要跟上一步填写的Token值一致

    服务器验证成功之后 我们在调用微信接口的时候 都需要与微信进行一个安全验证

    验证时候 微信会给我们一个access_token 进行安全验证

    所以我们在做开发时 第一步要获取微信的 access_token

    那么 如何获取呢

    我们只要get方式请求下面这个链接

    里面填写你的APPID 和 APPSECRET

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 注意调用所有微信接口时均需使用https协议

    返回下面这个样子的json串

    {"access_token":"ACCESS_TOKEN","expires_in":7200}

    我们可以看出来 ACCESS_TOKEN的失效时间为7200秒 所以我们可以给他设置一个小于7200的缓存来防止重复调用

    然后我们先来创建一个 自定义菜单

    http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

    参数说明

    参数是否必须说明button是一级菜单数组,个数应为1~3个sub_button否二级菜单数组,个数应为1~5个type是菜单的响应动作类型name是菜单标题,不超过16个字节,子菜单不超过40个字节keyclick等点击类型必须菜单KEY值,用于消息接口推送,不超过128字节urlview类型必须网页链接,用户点击菜单可打开链接,不超过256字节media_idmedia_id类型和view_limited类型必须调用新增永久素材接口返回的合法media_id

    只要填上正确的参数 微信自定义菜单就修改成功了!

    3.被动图片回复消息

    首先你要有图片

    所以 先新增一个临时素材

    http请求方式: POST/FORM,需使用https https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE 调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件): curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"

    参数说明

    参数是否必须说明access_token是调用接口凭证type是媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)media是form-data中媒体文件标识,有filename、filelength、content-type等信息

    返回说明

    正确情况下的返回JSON数据包结果如下:

    {"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789} 参数描述type媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)media_id媒体文件上传后,获取时的唯一标识created_at媒体文件上传时间戳

    错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):

    {"errcode":40004,"errmsg":"invalid media type"}

    最后获取用户信息

    请求方法

    http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

    参数说明

    参数描述access_token网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同openid用户的唯一标识lang返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

    微信开发其实非常简单 ,多看接口文档

    转载请注明原文地址: https://ju.6miu.com/read-1203759.html
    最新回复(0)