This commit is contained in:
zpc 2025-09-07 22:41:17 +08:00
parent be1e50ca12
commit cc76306215
2 changed files with 68 additions and 4 deletions

View File

@ -10,6 +10,7 @@
using System.Collections.Generic;
using CoreCms.Net.Model.Entities;
namespace CoreCms.Net.Model.FromBody
@ -53,6 +54,18 @@ namespace CoreCms.Net.Model.FromBody
public int invitecode { get; set; } = 0;
}
/// <summary>
/// 微信小程序登录解码手机号码
/// </summary>
public class FMWxLoginPhoneNumber
{
public string code { get; set; }
public string sessionAuthId { get; set; }
public int invitecode { get; set; } = 0;
}
/// <summary>
/// 微信账户创建
/// </summary>

View File

@ -183,7 +183,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
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 } };
return new WebApiDto { Code = 0, Msg = "OK", Data = new { user = userInfo.userId, isMobile = userInfo.mobile?.Length > 0, sessionAuthId = response.OpenId } };
}
userInfo = new CoreCmsUserWeChatInfo();
userInfo.openid = response.OpenId;
@ -192,14 +192,65 @@ namespace CoreCms.Net.Web.WebApi.Controllers
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, sessionAuthId = response.OpenId } };
}
return new WebApiDto { Code = -2, Msg = "", Data = new { user = 0, isMobile = false, sessionAuthId = "" } };
}
/// <summary>
/// 微信小程序授权拉取手机号码并登录
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
public async Task<WebApiCallBack> UseWxPhoneNumberLogin([FromBody] FMWxLoginPhoneNumber entity)
{
var jm = new WebApiCallBack();
var userInfo = await _userWeChatInfoServices.QueryByClauseAsync(p => p.openid == entity.sessionAuthId);
if (userInfo == null)
{
jm.code = -1;
jm.msg = "用户信息获取失败";
return jm;
}
//DecodedPhoneNumber phoneNumber;
string phoneNumber = "";
try
{
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
//phoneNumber = EncryptHelper.DecryptPhoneNumber(userInfo.sessionKey, entity.encryptedData, entity.iv);
var response = await client.ExecuteWxaBusinessGetUserPhoneNumberAsync(new SKIT.FlurlHttpClient.Wechat.Api.Models.WxaBusinessGetUserPhoneNumberRequest()
{
return new WebApiDto { Code = 0, Msg = "OK", Data = new { user = userInfo.userId, isMobile = false } };
AccessToken = accessToken,
Code = entity.code
}, HttpContext.RequestAborted);
if (response.ErrorCode == (int)WeChatReturnCode.ReturnCode.)
{
phoneNumber = response.PhoneInfo.PhoneNumber;
}
}
return new WebApiDto { Code = -2, Msg = "", Data = new { user = 0, isMobile = false } };
catch (Exception ex)
{
jm.code = 500;
NLogUtil.WriteAll(LogLevel.Error, LogType.Web, "小程序接口", "微信小程序授权拉取手机号码", ex);
return jm;
}
var data = new FMWxAccountCreate
{
mobile = phoneNumber,
invitecode = entity.invitecode,
sessionAuthId = entity.sessionAuthId
};
jm = await _userServices.SmsLogin(data);
return jm;
}
#region wx.login登陆成功之后发送的请求=========================================================
/// <summary>