課程地址:
https://study.163.com/course/courseMain.htm?courseId=1004873017
本課項目地址:
https://github.com/wechatdeveloper/WechatVideoCourse
課程目標:
使用數據容器(Container)管理微信調用憑證(AccessToken);
SDK 幫助開發者,只需要關注和微信之間的接口調用 ,不需要過多的關心AccessToken過期問題。
微信憑證類型:
AccessToken :微信接口調用 的憑據,是用於微信服務器和開發者服務器之間的接口調用的憑據
JsTicket:用戶移動端調用微信API的憑據
安全說明:憑據不可以存儲在Cookie、URL 等明文中
憑證特征:
- 需要通過AppId , AppSecret獲取AccessToken
- 具有一定的過期時間,如7200秒
- 可以被強制刷新、更新
- AccessToken 需要開發者自行管理
- 每天從微信服務器獲取的次數是有限制的
微信公眾號AccessToken獲取說明:
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
數據容器(Container)設計目標:
- 自動處理憑據過期、失效、重新獲取問題
- 支持緩存
- 詳細參考:設計圖解
SDK中AccessToken的方法:
- Senparc.Weixin.MP.Containers.AccessTokenContainer.GetAccessToken(AppId);
- Container對AccessToken進行管理:獲取、失效后的更新
- 由於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));
- SDK 均提供了對應的異步接口,如:CustomApi.SendTextAsync
用戶收到的客服消息效果:
微信公眾號客服消息的推送規則:
- 用戶在5分鍾內和公眾號有過交互
- 在用戶沒有回復的情況下,公眾號不可以連續推送超過20條的客服消息