注册的地址在 这里javascript
要进行微信公众号的开发,那就须要一个本地的开发环境来进行开发。而微信测试号就正好提供了这样的一个development环境。每一个微信号只能对应一个测试号,可是每一个测试号能够开发多个微信公众号项目。微信号与测试号是一一对应的关系,而测试号与开发项目是一对多的关系。进入以后会看到页面里面有如下几个大块。java
下面针对每一个点介绍一下具体是干吗的。git
包含了appId、appsecret。像以前说的,能够理解为你的帐号和密码。每一个测试号有一个惟一的appID和appsecret。通俗一点就是说,他们对应的就是惟一的帐号和密码,并且不能修改。github
URL:面试
URL就是你正在开发的项目的后端的服务器中微信验证服务器资源有效性的接口。前面这句话读起来可能有些绕口。通俗一点理解:微信要知道访问它资源是否是这个当前测试号。同时,也让你肯定,这个请求是来自微信。这样一来,就能够相互确认身份。只有确认是当前测试号发起的请求,才会放行。那么问题来了,如何验证呢?这个时候Token就有用了。小程序
微信会对配置的URL(也就是你的后端服务器的鉴权接口)发起http GET请求,下面是鉴权接口的代码,这里用koa看成例子。顺便安利一波koa中巨(自)好(己)用(写)的中间件 koa2-response。后端
const sha1 = require('sha1');
// 验证服务器资源
exports.verification = (ctx, next) => {
const token = '你本身的Token';
const { signature, nonce, timestamp, echostr } = ctx.query;
const str = [token, timestamp, nonce].sort().join('');
const sha = sha1(str);
if (signature === sha) {
ctx.body = String(echostr);
}
}
复制代码
说到验证服务器资源的时候可能有些人会有疑问。开发不是在本地开发吗?微信的服务器怎么可以访问个人本地服务器呢?api
若是要在本地开发的话,就须要使用 ngrok ,这个是用来实现内网穿透的。意思就是把你的局域网服务器ip映射到公网上。让局域网外部的服务器能够访问你的服务器资源。下载地址在 这里。下载下来以后解压,就会获得一个名字叫ngrok的可执行文件。用命令行进入可执行的文件所在的目录。执行如下代码。安全
./ngrok http localhost:3000
复制代码
3000是端口号,根据你本身的项目端口号来。就能够看到以下返回,此时你的局域网服务器就能够接受微信的GET请求了。一旦配置成功后,就能够Ctrl + C杀掉这个进程了。一直开着可能会有安全隐患。bash
Token:
Token是自定义的一个字符串。能够理解为对称加密中的公钥。在服务器中的Token须要跟测试号中的配置保持一致。
关于微信JS接口安全域名,大概的意思就是你要在特定的域名下的某个路由,才能使用微信的js-sdk,使用js-sdk能够干吗呢,微信的官方描述以下。
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
经过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时能够直接使用微信分享、扫一扫等微信特有的能力,为微信用户提供更优质的网页体验。
具体的接入流程能够参考个人另外一篇文章, 如何正确的接入微信JS-SDK。在这须要设置一个域名,以便在开发的时候来使用微信的js-sdk。固然在本地开发时,通常都用的localhost,除非你在开发时一直使用内网穿透。因此在JS接口安全域名下咱们可使用局域网的ip,前提是已经验证了服务器资源。
这里会有一个你的测试号码二维码。若是要使用的话,须要扫码关注公众号才能进行开发。右侧则是已经关注了该测试号的用户,最多100个。关注后,该测试号会出如今订阅号的列表中。
什么是模板消息?微信的官方文档以下。
模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它全部可能对用户形成骚扰的消息。
其使用规则以下:
- 全部服务号均可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才能够申请模板消息的使用权限并得到该权限;
- 须要选择公众帐号服务所处的2个行业,每个月可更改1次所选行业;
- 在所选择行业的模板库中选用已有的模板进行调用;
- 每一个帐号能够同时使用25个模板。
- 当前每一个帐号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提高为日10万次,可在MP登陆后的开发者中心查看】。当帐号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提高,以公众号MP后台开发者中心页面中标明的数字为准。
下面举个具体的例子,来源于微信的官方文档。咱们想要发送模板消息,就必需要在测试号中新建模板消息。点击模板消息接口中的新增测试模板接口。点击以后就会看到以下的Modal框。
模板标题能够随便取,模板内容例子以下。
{{first.DATA}}
商品名称:{{keyword1.DATA}}
面试时间:{{keyword2.DATA}}
面试地点:{{keyword3.DATA}}
{{remark.DATA}}
复制代码
新建成功以后,就能够在模板消息接口的中的列表看到。而后咱们须要往下面的URL发送POST请求。URL以下。
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
复制代码
POST的完整数据以下:
{
"touser": "OPENID",
"template_id": "ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
"url":"http://weixin.qq.com/download",
"miniprogram": {
"appid": "xiaochengxuappid12345",
"pagepath": "index?foo=bar",
},
"data": {
"first": {
"value": "恭喜你购买成功!",
"color": "#173177",
},
"keyword1": {
"value": "巧克力",
"color": "#173177",
},
"keyword2": {
"value": "39.8元",
"color": "#173177",
},
"keyword3": {
"value": "2014年9月22日",
"color": "#173177",
},
"remark": {
"value": "欢迎再次购买!",
"color": "#173177",
}
}
}
复制代码
向上面的URL发送POST请求,特定的用户就会在测试号中看到以下的消息提示。特定的用户就是touser字段中OPENID所表明的用户。若是用户没有关注该测试号,则不会收到该模板消息。template_id则填写咱们以前新建的模板消息的id便可。
在文档中,在此处给出了以下提示。
注:url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。开发者可根据实际须要选择其中一种跳转方式便可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
POST数据中,url和miniprogram可填不填,只是会对模板的跳转有影响,不影响模板消息的内容发送。
在这个部分,用表格的形式,列出了咱们可以使用的接口,以及该接口的权限。例如,获取access_token每日的调用次数,上限为2000。该部分分为三个大块。
对话服务
功能服务
网页服务
我主要解释一下网页服务中的网页帐号接口。点开后,就能够看到能够修改一个叫受权回调域名的字段。什么叫作受权回调。
了解微信鉴权的老铁应该知道,若是想要获取微信中的用户的信息,必需要通过微信的OAuth2.0网页受权,微信会鉴定是否有获取用户信息的权限,若是有的话,就会带上一个免登录code,将code拼接到咱们传的redirect_uri后,再进行重定向。而redirect_uri必须是在这配置的域名下的页面,不然回调不成功,也不能获取用户的数据。
微信的测试号接入,关键的步骤实际上是在第二个接口配置信息中,只要正确的验证了服务器资源,就基本上已经成功了。
若是须要参考如何接入微信的JS-SDK, 能够看下面这篇文章。
欢迎光临 我的博客