This commit is contained in:
zpc 2025-09-07 21:46:48 +08:00
parent bbe07eefe6
commit 64571676f0
2 changed files with 57 additions and 0 deletions

View File

@ -155,6 +155,50 @@ namespace CoreCms.Net.Web.WebApi.Controllers
_weChatOptions = weChatOptions.Value;
}
/// <summary>
/// wx.login登陆成功之后发送的请求
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
public async Task<WebApiDto> GetWxUserId([FromBody] FMWxPost entity)
{
var jm = new WebApiCallBack();
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
var request = new SnsJsCode2SessionRequest();
request.JsCode = entity.code;
request.AccessToken = accessToken;
var response = await client.ExecuteSnsJsCode2SessionAsync(request, HttpContext.RequestAborted);
if (response.ErrorCode == (int)WeChatReturnCode.ReturnCode.)
{
var userInfo = await _userWeChatInfoServices.QueryByClauseAsync(p => p.openid == response.OpenId);
if (userInfo != null)
{
if (userInfo.sessionKey != response.SessionKey)
{
await _userWeChatInfoServices.UpdateAsync(
p => new CoreCmsUserWeChatInfo() { sessionKey = response.SessionKey, updateTime = DateTime.Now },
p => p.openid == userInfo.openid);
}
return new WebApiDto { Code = 0, Msg = "OK", Data = new { user = userInfo.userId, isMobile = userInfo.mobile?.Length > 0 } };
}
userInfo = new CoreCmsUserWeChatInfo();
userInfo.openid = response.OpenId;
userInfo.type = (int)GlobalEnumVars.UserAccountTypes.;
userInfo.sessionKey = response.SessionKey;
userInfo.gender = 1;
userInfo.createTime = DateTime.Now;
await _userWeChatInfoServices.InsertAsync(userInfo);
if (userInfo is { userId: > 0 })
{
return new WebApiDto { Code = 0, Msg = "OK", Data = new { user = userInfo.userId, isMobile = false } };
}
}
return new WebApiDto { Code = -2, Msg = "", Data = new { user = 0, isMobile = false } };
}
#region wx.login登陆成功之后发送的请求=========================================================
@ -175,6 +219,12 @@ namespace CoreCms.Net.Web.WebApi.Controllers
request.AccessToken = accessToken;
var response = await client.ExecuteSnsJsCode2SessionAsync(request, HttpContext.RequestAborted);
//wxa/business/getuserphonenumber
//client.ExecuteWxaBusinessGetUserPhoneNumberAsync(new SKIT.FlurlHttpClient.Wechat.Api.Models.WxaBusinessGetUserPhoneNumberRequest()
//{
// AccessToken = accessToken,
// Code = ""
//}, HttpContext.RequestAborted).GetAwaiter().GetResult();
if (response.ErrorCode == (int)WeChatReturnCode.ReturnCode.)
{
using (await _mutex.LockAsync())

View File

@ -855,6 +855,13 @@
构造函数
</summary>
</member>
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.GetWxUserId(CoreCms.Net.Model.FromBody.FMWxPost)">
<summary>
wx.login登陆成功之后发送的请求
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.OnLogin(CoreCms.Net.Model.FromBody.FMWxPost)">
<summary>
wx.login登陆成功之后发送的请求