SuLei.API/Weixin/Common/CRMComm.cs
(开头部分) 9KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Text;
using Senparc.Weixin.MP;
namespace SuLei.API.Weixin.Common
{
/// <summary>
/// 负责获取或刷新AccessToken
/// </summary>
public class CRMComm
{
public CRMComm()
{ }
BLL.weixin_access_token tokenBLL = new BLL.weixin_access_token(); //账户AccessToken
BLL.weixin_account accountBLL = new BLL.weixin_account(); //公众平台账户
/// <summary>
/// 及时获得access_token值
/// access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。正常情况下access_token有效期为7200秒,
/// 重复获取将导致上次获取的access_token失效。
/// 每日限额获取access_token.我们将access_token保存到数据库里,间隔时间为20分钟,从微信公众平台获得一次。
/// </summary>
public string GetAccessToken(int accountId, out string error)
{
string access_token = string.Empty;
error = string.Empty;
try
{
Model.weixin_account accountModel = accountBLL.GetModel(accountId); //公众平台账户信息
if (string.IsNullOrEmpty(accountModel.appid) || string.IsNullOrEmpty(accountModel.appsecret))
{
error = "AppId或者AppSecret未填写,请在补全信息!";
return string.Empty;
}
//没有找到该账户则获取AccessToKen写入存储1200秒
if (!tokenBLL.ExistsAccount(accountId))
{
var result = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetToken(accountModel.appid, accountModel.appsecret);
access_token = result.access_token;
tokenBLL.Add(accountId, access_token);
return access_token;
}
//获取公众账户的实体
Model.weixin_access_token tokenModel = tokenBLL.GetAccountModel(accountId);
//计算时间判断是否过期
TimeSpan ts = DateTime.Now - tokenModel.add_time;
double chajunSecond = ts.TotalSeconds;
if (string.IsNullOrEmpty(tokenModel.access_token) || chajunSecond >= tokenModel.expires_in)
{
//从微信平台重新获得AccessToken
var result = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetToken(accountModel.appid, accountModel.appsecret);
access_token = result.access_token;
//更新到数据库里的AccessToken
tokenModel.access_token = access_token;
tokenModel.add_time = DateTime.Now;
tokenBLL.Update(tokenModel);
}
后面还有 170 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
