333
This commit is contained in:
parent
be1e50ca12
commit
cc76306215
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user