public dynamic BindMobile(ApiModel::DecryptContext context) { var result = this._weChat.Decrypt <PhoneNumberWxResponse>(context.Data, context.IV, context.SessionKey); var model = this._wxUserService.GetWxUser(context.WxChatUser.UnionId); if (model != null) { model.Mobile = result.PhoneNumber; this._wxUserService.Register(model); } return(new { state = new { hasMobile = true }, mobile = model.Mobile }); }
public WeChatUserInfo DecryptUserInfo(ApiModel::DecryptContext context) { var result = this._weChat.Decrypt <WeChatUserInfo>(context.Data, context.IV, context.SessionKey); //检查用户状态 var wxuser = this._wxUserService.GetWxUser(context.AppId, result.OpenId); if (wxuser == null) { wxuser = result.CreateWxUser(RegistryTypes.Miniprogram, context.AppId); this._os.TransactionManager.GetSession().SaveOrUpdate(wxuser); } else { result.State = new ApiModel::UserState() { HasMobile = !string.IsNullOrEmpty(wxuser.Mobile), Signup = true }; wxuser.LastActivityTime = DateTime.Now.ToUnixStampDateTime(); this._os.TransactionManager.GetSession().SaveOrUpdate(wxuser); } result.Id = wxuser.Id; result.Mobile = wxuser.Mobile; return(result); }