4.测试编号(用于开发测试和功能体验)
普通用户无法访问此类帐户。 是专门为开发者准备的公众号,仅用于测试。
出于用户体验和安全考虑,微信公众号的注册有一定的门槛,某些高级接口的权限需要微信认证才能获得。 因此,为了帮助开发者快速了解和上手微信公众号开发,熟悉各种接口的调用,微信推出了公众号测试号。 无需公众账号,快速申请接口测试账号。 您可以通过手机微信扫描二维码获取。 使用测试帐户我们可以体验和测试更高级的功能。
申请地址:
不过,测试账号也不是万能的,一些高级功能,比如微信支付、卡券功能等也没有开放。
如果想要实现支付功能,还是要注册一个官方公众号。
微信公众平台:
我们所有注册的公众账号都可以在这个平台上进行管理。 例如,如果您想创建一些自定义菜单、自动回复或每日推送的文章,您可以在这个平台上进行。
平台地址:
平台分为两种管理模式:
平台为我们提供了两种管理模式,我们应该根据自己的需求选择使用不同的模式。
我们来看看两种模式的区别:
编辑模式
主要供非程序员和公众号用于信息发布。
开启该模式后,您可以通过界面轻松配置“自定义菜单”和“自动回复消息”。
优点是可视化界面配置简单、操作快捷,但功能有限。
发展模式
主要针对有开发能力的人。
开启该模式后,您可以使用微信公众平台的开放界面,但编辑模式下的设置将无效,例如“自定义菜单”和“自动回复消息”功能。 通过编程,可以实现更复杂的功能,提供个性化的服务。
一般来说,编辑模式是为大家提供的。 如果你的需求只是最常用的菜单、自动回复等,使用编辑模式就足够了。 但如果你需要的功能比较复杂,就有很多很多的想法。 您需要使用开发模式。
让我们来学习一下如何使用这个开发模型。
开发模式配置流程
1.登录测试账户页面,您可以看到测试账户的相关信息。
只需使用您的计算机打开它即可
使用微信扫描二维码,您将在打开的页面中看到微信为您分配的检测号的相关信息。
以下两个属性是唯一标识符。 每个测试号都会有自己的 和 ,都是比较重要的信息。 请勿随意转发给他人。
:公众号开发识别码,配合开发者密码调用公众号的接口能力。
:用于验证公众号开发者身份的密码,安全性极高。
测试号信息.png
如果是官方公众号,登录官方平台官网后,找到“基础配置”菜单栏,获取公众号相关信息。
2. 配置参数介绍
再往下看,我们会看到 URL 和这两个属性。 与上面的不同的是,上面是微信分配给我们的,但是下面两项需要我们填写。
我们先来了解一下这两个属性的作用。
URL:指的是我们自己的服务器地址
该URL是开发者用于接收和响应微信消息和事件的接口URL。
(必须以or开头,分别支持80端口和443端口)
:可任意填写,用于生成签名(必须为英文或数字,长度3-32个字符)
这个签名稍后会用到。 您暂时可以在这里填写任何内容。
接口信息配置.png
接下来我们需要了解一下微信和我们服务器的交互过程:
当我们向微信公众号发送一条内容时,实际上会发送到微信服务器。 这时微信服务器会将内容封装成一定格式的数据,比如xml格式,然后转发给我们。 在配置好的URL上,所以URL实际上就是我们处理数据的请求路径。 因此,URL必须是可以暴露给外界的公网地址。 不能使用内网地址。 在生产环境中,可以申请腾讯云、阿里云服务器等,但在开发环境中,可以暂时使用一些软件来完成内网穿透。 ,易于修改和测试。 比如花生壳之类的软件,使用起来也非常方便。 本地安装相应的软件。 配置并运行后,您可以直接使用软件分配的临时域名来访问本地应用程序。 不过,偶尔也会出现网络问题。 局势稳定。 这里就不详细介绍如何使用了。 具体教程请参考软件官网。
交互流程.png
在开发过程中,我们经常会用到微信公众号向开发者提供的开发文档
具体地址:
打开后,您可以选择“接入指南”,参考微信提供的一些帮助信息。
3.构建本地应用程序(java//php等语言都可以)
了解了基本概念后,我们马上就要开始开发,所以我们需要先提供一个应用程序,然后我们就可以在应用程序中添加公众号相关的功能。
本文项目使用java语言和++框架
4.URL访问验证
我们首先要了解一下访问流程是怎样的。 下图是微信官方对接入流程的介绍。
从上面的介绍可以看出,当我们填写 url 和 的值,并提交后,微信就会向我们填写的url发送一个get请求,并携带4个参数,参数是一个开发者填写的参数和请求中的参数的组合使用参数和参数创建加密签名,我们需要在后台验证签名是否合法。 事实上,我们发现微信带来的四个参数中没有任何参数,只有与相同算法执行加密操作相关的参数。 如果结果与微信传入的结果相同,则合法。 然后参数不变返回,即表示访问成功。 否则,如果不进行任何处理,将会导致访问失败。
详细流程请参考微信官方提供的逻辑流程图。 我们的应用需要按照这个流程图的步骤来实现。
图片.png
代码示例:
@
{
/**
* 微信URL访问验证
*@
*@
*@
*@
*@
*/
@(="/",= .GET)
@
(,,,,){
//1. 对三个参数进行排序,并按字典顺序
[] arr = {,,.};
.sort(arr);
//2. 将三个参数串连接成一个字符串进行sha1加密
sb=new();
for (临时:arr) {
某人(温度);
//3. 开发者获取到加密后的字符串并进行比较,表明该请求来自微信。
if(.SHA1(sb.()).()){
//访问成功
;
//访问失败
无效的;
评论:
在代码中,. 是一个常量,常量值必须和我们在页面填写的值一致。 通常可以将其提取到配置文件中以更灵活地注入值。
2、是一个提供sha1加密方法的工具类。
接入成功后,就可以根据开发文档实现一些小案例了。 文章暂时使用测试账号进行开发。 未来如果某些高级功能权限不足,可能会改为正式公众号进行开发。