基于senparc实现的微信AccessToken接口全局统一获取
生活随笔
收集整理的這篇文章主要介紹了
基于senparc实现的微信AccessToken接口全局统一获取
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在senparc中實現了AccessToken的全局獲取方式,因微信項目涉及跨語言、跨團隊,外包方式的合作,需要通過接口方式供合作方調用,現將使用webapi實現的接口分享給大家:
1、自定義一個對外統一的AccessToken
/// <summary>/// 自定義一個對外統一的AccessToken/// </summary> [Serializable]public class MPAccessTokenInfo{/// <summary>/// 獲取到的憑證/// </summary>public string AccessToken { get; set; }/// <summary>/// 憑證到什么時間過期/// </summary>public DateTime AccessTokenExpireTime { get; set; }}2、接口方法
//----------------------------------------------------------------------- // <copyright file="WechatOpenController.cs" company="FenSiShengHuo, Ltd."> // Copyright (c) 2018 , All rights reserved. // </copyright> //-----------------------------------------------------------------------using Senparc.Weixin.Open.Containers; using System; using System.Web.Http;namespace DotNet.WeChat.API.Controllers {using DotNet.Utilities;using DotNet.WeChat.API.Common;using Senparc.Weixin.Containers;using Senparc.Weixin.MP.Containers;using Senparc.Weixin.Open.ComponentAPIs;/// <summary>/// WechatOpenController/// /// 修改紀錄/// /// 2018-07-27 版本:1.0 JiShiYu 創建文件。 /// /// <author>/// <name>JiShiYu</name>/// <date>2018-07-27</date>/// </author>/// </summary>public class WechatController : ApiController{/// <summary>/// 獲取微信調用的Token 公眾號的方式/// </summary>/// <returns></returns>public JsonResult<MPAccessTokenInfo> GetMPAccessToken(){JsonResult<MPAccessTokenInfo> result = new JsonResult<MPAccessTokenInfo>();result.Status = false;result.StatusMessage = "沒有獲取到";try{var accessTokenResult = AccessTokenContainer.GetAccessTokenResult(GlobalSetting.WeixinAppId);var accessTokenBag = BaseContainer<AccessTokenBag>.TryGetItem(GlobalSetting.WeixinAppId);MPAccessTokenInfo info = new MPAccessTokenInfo();info.AccessToken = accessTokenResult.access_token;info.AccessTokenExpireTime = accessTokenBag.AccessTokenExpireTime;result.Status = true;result.Data = info;result.StatusMessage = "成功獲取";}catch (Exception ex){NLogHelper.Warn(ex, "WechatOpenController : ApiController GetAccessToken");result.Status = false;result.StatusMessage = "異常:" + ex.Message;}return result;}} }3、接口返回值
{"Status": true,"ResultValue": "","StatusCode": "OK","StatusMessage": "成功獲取","RecordCount": 0,"Data": {"AccessToken": "12_wGwcOStoi9XzRjjCzcwMgubNythtfRGqAn1ntj19I4rR_Rze5vvk5FQyd2ELUmDkFYR47lzkKdnzYzQV1Iqdj0D7tGTguqesXBTHOlLeiUmjMrbGRN_vAG26QFEilArzXBcRMCCcob2_FNr1EEZaAHARRM","AccessTokenExpireTime": "2018-07-29 21:21:05"} }?
返回值中AccessTokenExpireTime表示當前的AccessToken在什么時候過期,第三方調用時可以據此設置緩存,避免每次都調用接口獲取,減少接口交互次數。
?
總結
以上是生活随笔為你收集整理的基于senparc实现的微信AccessToken接口全局统一获取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali linux学习笔记
- 下一篇: docker进阶 一键安装wordpre