wechat 获取用户信息API

发布时间 2023-10-27 11:36:02作者: 墨秀铜香

/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="openId"></param>
/// <returns></returns>
[Route("GetUserInfo")]
[HttpPost]
public IActionResult GetUserInfo(string openId)
{
//参数
string postdata = JsonConvert.SerializeObject(new { });

//---------第一步------------
//appid=wx878696657f714582
//secret=313ed037bf4e927a6d225317e775d1b9

//---------第二步------------
//获取access_token值
string toekn = "";

if (MemoryCacheHelper.Exists("access_token"))
{
toekn = MemoryCacheHelper.Get("access_token").ToString();
}
else
{
var tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx878696657f714582&secret=313ed037bf4e927a6d225317e775d1b9";
var bupo = HttpClient.HttpPostWeChatApi(tokenUrl, postdata);
TokenDto info = JsonConvert.DeserializeObject<TokenDto>(bupo);
toekn = info.access_token;
MemoryCacheHelper.Set("access_token", toekn, TimeSpan.FromMinutes(60));
}

//---------第三步------------
//获取openId值
if (string.IsNullOrEmpty(openId))
{
openId = "oXriy6Dh8McEmYtZJx4xr6GABuvU";
}

//---------第四步------------
//获取用户基本信息
string url = " https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + toekn + "&openid=" + openId + "&lang=zh_CN";
var user = HttpClient.HttpPostWeChatApi(url, postdata);
return Ok(user);
}

/// <summary>
/// 获取用户列表
/// </summary>
/// <returns></returns>
[Route("GetUserInfos")]
[HttpPost]
public IActionResult GetUserInfos()
{
//参数
string postdata = JsonConvert.SerializeObject(new { });
string token = "";
if (MemoryCacheHelper.Exists("access_token"))
{
token = MemoryCacheHelper.Get("access_token").ToString();
}
else
{
var tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx878696657f714582&secret=313ed037bf4e927a6d225317e775d1b9";
var bupo = HttpClient.HttpPostWeChatApi(tokenUrl, postdata);
TokenDto tokenInfo = JsonConvert.DeserializeObject<TokenDto>(bupo);
token = tokenInfo.access_token;
MemoryCacheHelper.Set("access_token", token, TimeSpan.FromMinutes(60));
}
string url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + token + "&next_openid=";
var user = HttpClient.HttpPostWeChatApi(url, postdata);
return Ok(user);
}

/// <summary>
/// 添加客服
/// </summary>
/// <returns></returns>
[Route("InsertCsd")]
[HttpPost]
public IActionResult InsertCsd()
{
string toekn = "";
if (MemoryCacheHelper.Exists("access_token"))
{
toekn = MemoryCacheHelper.Get("access_token").ToString();
}
else
{
var tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx878696657f714582&secret=313ed037bf4e927a6d225317e775d1b9";
var bupo = HttpClient.HttpPostWeChatApi(tokenUrl, JsonConvert.SerializeObject(new { }));
TokenDto info = JsonConvert.DeserializeObject<TokenDto>(bupo);
toekn = info.access_token;
MemoryCacheHelper.Set("access_token", toekn, TimeSpan.FromMinutes(60));
}
//参数
string postdata = JsonConvert.SerializeObject(new { kf_account = "test1@test", nickname = "客服1", password = "pswmd5" });
string url = " https://api.weixin.qq.com/customservice/kfaccount/add?access_token=" + toekn;
var result = HttpClient.HttpPostWeChatApi(url, postdata);
return Ok(result);
}

/// <summary>
/// 获取所有客服信息
/// </summary>
/// <returns></returns>
[Route("QueryCsds")]
[HttpPost]
public IActionResult QueryCsds()
{
string toekn = "";

//string url1 = "";
//var result1 = HttpClient.HttpPostWeChatApi(url1, "");
//LogOperation.WriteLog(result1);

if (MemoryCacheHelper.Exists("access_token"))
{
toekn = MemoryCacheHelper.Get("access_token").ToString();
}
else
{
var tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx878696657f714582&secret=313ed037bf4e927a6d225317e775d1b9";
var bupo = HttpClient.HttpPostWeChatApi(tokenUrl, JsonConvert.SerializeObject(new { }));
TokenDto info = JsonConvert.DeserializeObject<TokenDto>(bupo);
toekn = info.access_token;
MemoryCacheHelper.Set("access_token", toekn, TimeSpan.FromMinutes(60));
}
//参数
string postdata = JsonConvert.SerializeObject(new { });
string url = "https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token=" + toekn;
var result = HttpClient.HttpPostWeChatApi(url, postdata);
return Ok(result);
}

/// <summary>
/// 获取token
/// </summary>
///
[Route("QueryPeiZhiToken")]
[HttpPost]
public IActionResult QueryPeiZhiToken(string echoStr,string signature, string timestamp,string nonce)
{
string WeiXinToken = "123456";//要和你微信公众平台设置的保持一致

string[] ArrTmp = { WeiXinToken, timestamp, nonce };

Array.Sort(ArrTmp);
string tmpStr = string.Join("", ArrTmp);

//将字符串编码为字节序列
byte[] bt = Encoding.UTF8.GetBytes(tmpStr);
//创建默认实现的实例
var md5 = MD5.Create();
//计算指定字节数组的哈希值。
var md5bt = md5.ComputeHash(bt);
//将byte数组转换为字符串
StringBuilder builder = new StringBuilder();
foreach (var item in md5bt)
{
builder.Append(item.ToString("X2"));
}
tmpStr = builder.ToString();

//tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
//tmpStr = Membership.CreateUser(tmpStr, "SHA1");
tmpStr = tmpStr.ToLower();

if (tmpStr == signature)
{
if (!string.IsNullOrEmpty(echoStr))
{
Response.WriteAsync(echoStr);
}
}

return Ok("");
}