一、基础说明
这里说的“通用接口(commonapis)”是使用微信公众账号一系列高级功能的必备验证功能(应用于开发模式)。
我们通过微信后台唯一的凭证,向通用接口发出请求,得到访问令牌(accesstoken),然后使用访问令牌去使用各项需要身份验证的高级功能,例如自定义菜单、获取用户信息、单发消息、群发消息等等。
目前所有的服务号和通过认证的订阅号,都可以在微信公众账号后台的【功能】>【高级功能】>【开发模式】下的“开发者凭据”一栏找到appid和appsecret两个字符串,这两个字符串就是获得accesstoken的依据,因此需要严格保密,如果发现有泄露的可能,或者出于安全策略,应当使用边上的“重置”按钮对appsecret进行随机生成(注意appid不会变化),并且同时修改程序中的对应参数。
二、接口使用
在senparc.weixin.mp sdk中,通用接口的基本方法都在senparc.weixin.mp.commonapis命名空间下:
文件说明如下:
accesstokencontainer.cs - 一个accesstoken容器(帮助自动更新accesstoken,因为每一个accesstoken都有一个有效期)
commonapi.cs - 提供获取accesstoken的通用方法
commonapi.menu.cs - 自定义菜单所有接口
commonjsonsend.cs - 对通用接口返回类型的一些封装处理
有关上述类的详细方法及说明可以看开源代码的注释: https://github.com/jeffreysu/weixinmpsdk/tree/master/senparc.weixin.mp/senparc.weixin.mp/commonapis
有了accesstokencontainer,我们可以直接这样获取accesstoken:
if (!accesstokencontainer.checkregistered(appid))//检查是否已经注册
{
accesstokencontainer.register(appid, appsecret);//如果没有注册则进行注册
}
var result = accesstokencontainer.getaccesstokenresult(appid); //获取accesstoken结果
当然也可以更加简单地一步到位:
var result = accesstokencontainer.trygetaccesstoken(appid, appsecret);
上述获取到的result有access_token和expires_in两个属性,分别储存了accesstoken字符串和过期时间(秒),如果使用accesstokencontainer.trygetaccesstoken()方法,则可以彻底忽略的expires_in存在,如果过期,系统会自动重新获取。
更多微信公众平台开发:通用接口说明。