diff --git a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
index 54594a7..39d4a1f 100644
--- a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
+++ b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
@@ -155,6 +155,50 @@ namespace CoreCms.Net.Web.WebApi.Controllers
_weChatOptions = weChatOptions.Value;
}
+ ///
+ /// wx.login登陆成功之后发送的请求
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task 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())
diff --git a/CoreCms.Net.Web.WebApi/Doc.xml b/CoreCms.Net.Web.WebApi/Doc.xml
index e678ff9..807222c 100644
--- a/CoreCms.Net.Web.WebApi/Doc.xml
+++ b/CoreCms.Net.Web.WebApi/Doc.xml
@@ -855,6 +855,13 @@
构造函数
+
+
+ wx.login登陆成功之后发送的请求
+
+
+
+
wx.login登陆成功之后发送的请求