Пример #1
0
        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);
        }
Пример #2
0
        public IActionResult DecodePhone(DecodePhoneModel model)
        {
            var phone = new DecodeDecryptData()?.Decrypt(model.EncryptedData, model.IV, model.SessionKey);

            return(Ok(phone));
        }
Пример #3
0
        public IHttpActionResult GetWXPhone([FromBody] DecodePhoneModel phoneModel)
        {
            var ret = _wxOpenService.GetWXPhone(phoneModel);

            return(Ok(ret));
        }