微信登录

#region (login.js)微信小程序注册登陆
/// <summary>
/// (login.js)微信小程序注册登陆
/// </summary>
/// <param name="wxUserInfo">微信用户加密后的资料</param>
/// <returns></returns>
[HttpPost]
[Route("WxLogin")]
public ApiResultModel WxLogin([FromBody]WxUserInfo wxUserInfo)
{
try
{
var api = new ApiResultModel { Success = 1 };
string userInfo = WxAES.AES_decrypt(wxUserInfo.encryptedData, wxUserInfo.session_key, wxUserInfo.iv);
WxGudgeLogin wxGudgeLogin = JsonConvert.DeserializeObject<WxGudgeLogin>(userInfo);

//api.Data = userInfo;
//return api;

#region 判断openid是否存在
var UserModel = db.User_Index.Where(m => m.IsDelete == 0 && m.WeChatOpenID == wxGudgeLogin.openId).FirstOrDefault();
if (UserModel != null)
{
api.Success = 0;
api.Message = "不能重复注册";
return api;
}
#endregion

long id = DataBaseHelper.CreateID();
long uid = db.User_Index.Max(r => r.UID) + 1;
#region 增加用户表
User_Index user_Index = new User_Index()
{
ID = id,
UID = uid,
Status = 1,
WeChatOpenID = wxGudgeLogin.openId,//微信唯一标识
NickName = wxGudgeLogin.nickName,
Gender = wxGudgeLogin.gender,
City = wxGudgeLogin.city,
Province = wxGudgeLogin.province,
Country = wxGudgeLogin.country,
Language = wxGudgeLogin.language,
AvatarUrl = wxGudgeLogin.avatarUrl,
UnionId = wxGudgeLogin.unionId,
CreateBy = uid,//创建人
CreateTime = DateTime.Now,//创建时间
CityStates = 0,//城市信息填写状态
DetailsStates = 0,//详细信息填写状态
IsDelete = 0,//是否删除
UserType = UserTypeDict.Client.Value,
ClientUserType = 0//身份类型:1工人,2班组长,3分包,4总包 默认未选择身份
,
FromUID = wxUserInfo.srcuid
};
db.User_Index.Add(user_Index);
#endregion

#region 增加用户积分表
var UserScoreModel = new User_Score();
UserScoreModel.ID = DataBaseHelper.CreateID();
UserScoreModel.UID = uid;
UserScoreModel.IntegralCount = UserScoreConfig.Register; //默认注册积分
UserScoreModel.IsDelete = 0;
UserScoreModel.CreateBy = uid;
UserScoreModel.CreateTime = DateTime.Now;
db.User_Score.Add(UserScoreModel);

var IntegralModel = new User_IntegralManager();
IntegralModel.Id = DataBaseHelper.CreateID();
IntegralModel.CreateBy = uid;
IntegralModel.CreateTime = DateTime.Now;
IntegralModel.Uid = uid;
IntegralModel.IsDelete = 0;
IntegralModel.ApplyDate = DateTime.Now;
IntegralModel.Explain = "注册增加" + UserScoreConfig.InvitationRegister + "积分";
IntegralModel.IntegralType = UserIntegralTypeDict.InvitationRegister.Value;
IntegralModel.IntegralState = IntergralDemoDict.demo2.Value;
IntegralModel.IntegralCount = UserScoreConfig.InvitationRegister;
IntegralModel.CommodityID = 0;
db.User_IntegralManager.Add(IntegralModel);
#endregion

#region 增加空的实名信息表
User_WorkerInfo user_WorkerInfo = new User_WorkerInfo()
{
ID = DataBaseHelper.CreateID(),
UID = uid,//创建详细信息 , UID 和 用户表中的 UID 相关联。
CreateBy = uid,
CreateTime = DateTime.Now,
IsDelete = 0
};
db.User_WorkerInfo.Add(user_WorkerInfo);
#endregion

int result = db.SaveChanges();
if (result > 0)
{
//WxResponse<WxGudgeLogin> userMess = new WxResponse<WxGudgeLogin>() { uid = uid, datas = wxGudgeLogin };
api.Success = 1;
api.ErrorCode = 1;
api.Message = "添加成功,请开始填写第一步信息:身份选择";
api.Data = new
{
uid = uid.ToString(),
datas = wxGudgeLogin
};//本栈的用户唯一标识
}
else
{
api.Success = 0;
api.Message = "添加失败";
}
return api;
}
catch (Exception ex)
{

throw new Exception(ex.Message);
}

}
#endregion

原文地址:https://www.cnblogs.com/lockzy/p/11758998.html