Пример #1
0
        static void Main(string[] args)
        {
            Console.Read();
            HttpPost.send();

            return;

            string salt       = "";
            string textNormal = "hola_";
            string textEncrip = "";

            salt       = Guid.NewGuid().ToString();
            textEncrip = RijndaelManagedEncryption.EncryptRijndael(textNormal, salt);
            textNormal = RijndaelManagedEncryption.DecryptRijndael(textEncrip, salt);

            Console.WriteLine("---------------------------------------");
            Console.WriteLine("salt:" + salt);
            Console.WriteLine("textEncrip:" + textEncrip);
            Console.WriteLine("textNormal:" + textNormal);

            Console.WriteLine("---------------------------------------");
            Console.WriteLine("Usando AESAlgorithm:");
            textEncrip = AESAlgorithm.Encrypt(textNormal);
            //string otherTextEncript = AESAlgorithm.Encrypt("hola_");
            Console.WriteLine("textNormal:" + textNormal);
            Console.WriteLine("textEncrip:" + textEncrip);
            Console.WriteLine("textDecrip:" + AESAlgorithm.Decrypt(textEncrip));

            // Error padding code Base64 erroneo a proposito
            Console.WriteLine("textDecrip2:" + AESAlgorithm.Decrypt("pw7qE1E4o6/1QAKSPv8Jwg=="));

            Console.Read();
        }
        public async Task <Result> PreTest([FromBody] PreTestPatams testPatams)
        {
            try
            {
                var sw      = Stopwatch.StartNew();
                var appinfo = _appService.GetAppCache(testPatams.AppKey);
                if (appinfo == null)
                {
                    return new Result {
                               Status = false, Message = TaskResultStatus.AppKeyError.ToString()
                    }
                }
                ;
                var json = AESAlgorithm.Decrypt(testPatams.PreData, appinfo.AppSecret);
                //var p= _serializer.Deserialize<PreTestModel>(json);
                // var dto = p.MapTo<PreTestDto>();
                var dto  = new PreTestDto();
                var pArr = json.Split("&", StringSplitOptions.RemoveEmptyEntries);
                dto.AppKey     = pArr[0];
                dto.AppSecret  = pArr[1];
                dto.MerchantNo = pArr[2];
                var rlt = await _preTestService.PreTest(dto);

                sw.Stop();
                Logger.Info($"pretest time:{sw.ElapsedMilliseconds}");
                return(rlt);
            }
            catch (Exception ex)
            {
                Logger.Error("预验失败", ex);
                return(new Result {
                    Status = false
                });
            }
        }
Пример #3
0
        /// <summary>
        /// "phoneNum": "17621826129"
        //"operatorType": "CT"
        /// </summary>
        /// <param name="params"></param>
        /// <returns></returns>
        public async Task <RespResult> GetMobile(Params @params)
        {
            try
            {
                var nonce       = _guid.Create().ToString("N");
                var dateTime    = DateTimeOffset.UtcNow;
                var timeStamp   = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");
                var appInfo     = ObjectContainer.Resolve <IAppService>().GetAppCache(@params.AppKey);
                var dataContent = AESAlgorithm.Decrypt(@params.DataContent, appInfo.MessageSecret);
                @params.DataContent = AESAlgorithm.Encrypt(dataContent, appInfo.MsgSecret);

                var url        = _config.GetValue("OneKeyLogin:Url", "https://feiyan.xinyan-ai.com/ocl/oclOrder/v1/getMobile");
                var respResult = await Send(@params, nonce, timeStamp, appInfo, url);

                if (!respResult.success)
                {
                    return(respResult);
                }
                var cmd = new SendCompleteCommand();
                CreateCompleteCommand(@params, nonce, dateTime, appInfo, respResult, cmd);

                //计费
                await Balance(appInfo);

                //redis
                await _redisHelper.StringIncrementAsync(RedisKeyName.CreateUserAmountKey(appInfo.UserId), -1);

                var entity = new ExpenseDetailEntity();
                CreateEntity(cmd, entity);

                //交易明细写数据库
                await ExpenseDetail(appInfo, entity);

                //await _mediator.Publish(cmd);
                return(respResult);
            }
            catch (Exception ex)
            {
                Logger.Error("GetMobile:", ex);
                Logger.Error($"json:{Serializer.Serialize(@params)}");
                return(new RespResult {
                    errorCode = TaskResultStatus.SystemError.ToString(), errorMsg = "系统错误", result = null, success = false
                });
            }
        }
Пример #4
0
        public async Task <Result> PreTest(PreTestDto dto)
        {
            try
            {
                var appInfo = _appService.GetAppCache(dto.AppKey);
                if (appInfo == null)
                {
                    return new Result {
                               Status = false, Message = TaskResultStatus.AppKeyError.ToString()
                    }
                }
                ;
                if (!VerifTimeStamp(dto.TimeStamp))
                {
                    return(await Task.FromResult(new Result { Status = false, Message = TaskResultStatus.TimeStampError.ToString() }));
                }
                var md5 = Hx.Security.Md5Getter.Get($"{appInfo.Id}{appInfo.AppSecret}{dto.TimeStamp}{appInfo.UserId}");
                if (!dto.Signature.ToLower().Equals(md5.ToLower()))
                {
                    return new Result {
                               Status = false, Message = TaskResultStatus.PreSignatureError.ToString()
                    }
                }
                ;

                //验证余额
                var ver = await VerifiedBalance(appInfo);

                if (!ver.Status)
                {
                    return(ver);
                }

                var dataContent = AESAlgorithm.Decrypt(dto.DataContent, appInfo.AppSecret);
                if (string.IsNullOrWhiteSpace(dataContent))
                {
                    return new Result {
                               Status = false, Message = TaskResultStatus.TokenError.ToString()
                    }
                }
                ;
                //计费
                await Balance(appInfo);

                //redis
                await _redisHelper.StringIncrementAsync(RedisKeyName.CreateUserAmountKey(appInfo.UserId), -1);

                //计费明细写数据库
                await BillingDetails(appInfo, dataContent);

                return(new Result {
                    Status = true, Message = TaskResultStatus.OK.ToString()
                });
            }
            catch (Exception ex)
            {
                Logger.Error($"PreTest error:{ex},dto:{Serializer.Serialize(dto)}");
                return(new Result {
                    Status = false, Message = TaskResultStatus.SystemError.ToString()
                });
            }
        }