public ReturnValueModel GetWXPhone(DecodePhoneModel phoneModel) { ReturnValueModel rvm = new ReturnValueModel(); var user = _rep.FirstOrDefault <WxUserModel>(s => s.IsDeleted != 1 && (s.Id == phoneModel.userId || s.UnionId == phoneModel.unionId)); if (user?.IsSalesPerson == 2) { rvm.Success = false; rvm.Msg = "员工请走内部员工通道"; rvm.Result = null; return(rvm); } var appId = _config.GetAppIdHcp(); var appSecret = _config.GetAppSecretHcp(); var url = string.Format(WxUrls.UnionIdUrl, appId, appSecret, phoneModel.code); var openModel = JsonConvert.DeserializeObject <OpenModel>(HttpUtils.HttpGet(url, "")); if (string.IsNullOrEmpty(openModel?.SessionKey)) { rvm.Success = false; rvm.Msg = "没有获取到SessionKey"; rvm.Result = null; return(rvm); } var encryptedData = phoneModel.encryptedData; var iv = phoneModel.iv; if (string.IsNullOrEmpty(encryptedData) && string.IsNullOrEmpty(iv)) { rvm.Success = false; rvm.Result = null; return(rvm); } var phone = EncryptHelper.DecodeUserPhoneBySessionKey(openModel.SessionKey, phoneModel.encryptedData, phoneModel.iv); rvm.Success = true; rvm.Result = phone; return(rvm); }
public IActionResult DecodePhone(DecodePhoneModel model) { var phone = new DecodeDecryptData()?.Decrypt(model.EncryptedData, model.IV, model.SessionKey); return(Ok(phone)); }
public IHttpActionResult GetWXPhone([FromBody] DecodePhoneModel phoneModel) { var ret = _wxOpenService.GetWXPhone(phoneModel); return(Ok(ret)); }