第8课 接口调用凭证及数据容器(Container)

  • A+
所属分类:.NET技术
摘要

文章说明:    本文是基于盛派网络苏震巍老师的《微信公众号+小程序快速开发》课程笔记。

文章说明: 

  本文是基于盛派网络苏震巍老师的《微信公众号+小程序快速开发》课程笔记。

课程地址: 

  https://study.163.com/course/courseMain.htm?courseId=1004873017

本课项目地址:

  https://github.com/wechatdeveloper/WechatVideoCourse

课程目标

  使用数据容器(Container)管理微信调用凭证(AccessToken); 

  SDK 帮助开发者,只需要关注和微信之间的接口调用 ,不需要过多的关心AccessToken过期问题。

 

微信凭证类型:

  AccessToken :微信接口调用 的凭据,是用于微信服务器和开发者服务器之间的接口调用的凭据

  JsTicket:用户移动端调用微信API的凭据

  安全说明:凭据不可以存储在Cookie、URL 等明文中

 

凭证特征:

  1. 需要通过AppId , AppSecret获取AccessToken
  2. 具有一定的过期时间,如7200秒
  3. 可以被强制刷新、更新
  4. AccessToken 需要开发者自行管理
  5. 每天从微信服务器获取的次数是有限制的

 

微信公众号AccessToken获取说明:

https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 

 

数据容器(Container)设计目标:

  1. 自动处理凭据过期、失效、重新获取问题
  2. 支持缓存
  3. 详细参考:设计图解

 

SDK中AccessToken的方法:

  1.  Senparc.Weixin.MP.Containers.AccessTokenContainer.GetAccessToken(AppId); 
  2. Container对AccessToken进行管理:获取、失效后的更新
  3. 由于SDK对AccessToken进行了高度的封装、管理;所以在调用微信接口的时候,不需要每次都先获取AccessToken,只需要传递AppId参数即可,如下
    1  //获取微信用户信息 2   var userInfo = Senparc.Weixin.MP.AdvancedAPIs.UserApi.Info(AppId, openId); 3   string strNickName = userInfo.nickname; 4   string strGender = userInfo.sex == 1 ? "先生" : "女士"; 5  6  //推送客服消息,给用户 7   Senparc.Weixin.MP.AdvancedAPIs.CustomApi.SendText(AppId, openId, "你好,{0} {1}".FormatWith(strNickName, strGender));

  4. SDK 均提供了对应的异步接口,如:CustomApi.SendTextAsync

  

  用户收到的客服消息效果:

  第8课  接口调用凭证及数据容器(Container)

 

微信公众号客服消息的推送规则:

  1. 用户在5分钟内和公众号有过交互
  2. 在用户没有回复的情况下,公众号不可以连续推送超过20条的客服消息