开发模式:为了帮助了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了公众帐号测试号,无需公众帐号、申请接口测试号,通过手机微信扫描二维码即可获得,利用测试号我们可以体验和测试更多功能。但测试号也不是的,部分功能,如微信支付,卡券功能等也是不开放的。如果要实现支付功能还是得去注册个正式的公众号。
接入开发模式我们首先了解下微信与我们的服务器交互的过程:
app公众号开发设计
开发模式:为了帮助了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了公众帐号测试号,无需公众帐号、申请接口测试号,通过手机微信扫描二维码即可获得,利用测试号我们可以体验和测试更多功能。但测试号也不是的,部分功能,如微信支付,卡券功能等也是不开放的。如果要实现支付功能还是得去注册个正式的公众号。
接入开发模式我们首先了解下微信与我们的服务器交互的过程:
当我们在微信app上,给公众号发送一条内容的时候,实际会发送到微信的服务器上,此时微信的服务器就会对内容进行封装成某种格式的数据比如xml格式,再转发到我们配置好的某个URL上,所以该URL实际就是我们处理数据的一个请求路径。所以该URL必须是能暴露给外界访问的一个公网地址,不能使用内网地址,生产环境可以申请腾讯云,阿里云服务器等,但是在开发环境中可以暂时利用一些软件来完成内网穿透。
弹出微信相册发图器用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给的服务器,并推送事件给,同时收起相册,随后可能会收到下发的消息。弹出地理位置选择器用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给的服务器,同时收起位置选择工具,随后可能会收到下发的消息。media_id:下发消息(除文本消息)用户点击media_id类型按钮后,微信服务器会将填写的素材id对应的素材下发给用户,素材类型可以是图片、音频、视频、图文消息。请注意:素材id必须是在“素材管理/新增素材”接口上传后获得的合法id。
提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:参数描述signature微信加密签名,signature结合了填写的token参数和请求中的timestamp参数、nonce参数。timestamp时间戳nonce随机数echostr随机字符过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为成功,否则接入失败。加密/校验流程如下:
将token、timestamp、nonce三个参数进行字典序排序将三个参数字符串拼接成一个字符串进行sha1加密获得加密后的字符串可与signature对比,标识该请求来源于微信。
(作者: 来源:)