Пример #1
0
        /// <summary>
        /// 查询用户余额
        /// author:陶林辉
        /// </summary>
        /// <param name="userId"></param>
        /// <returns>余额,可兑出</returns>
        public UserBalanceDto AcquireBalance(long userId)
        {
            BalanceReuqest Balance = new BalanceReuqest
            {
                FuserId = userId.ToString()
            };
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(Balance));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strUrl  = string.Format(_options.Value.Url, "v1", "balance");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"查询用户余额请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"查询用户余额返回值{ JsonHelper.SerializeObject(response)}");
            if (response.Code == "0")
            {
                var vResult = JsonHelper.DeserializeJsonToObject <UserBalanceDto>(_sys.Base64Decode(response.Data));
                return(vResult);
            }
            return(null);
        }
Пример #2
0
        /// <summary>
        /// 获取游戏地址
        /// author:林辉
        /// </summary>
        /// <param name="gameKey">游戏key</param>
        /// <param name="userId">用户id</param>
        /// <param name="version">APP版本</param>
        /// <param name="osType">来源系统</param>
        /// <param name="deviceCode">设备型号</param>
        /// <param name="nickName">用户昵称</param>
        /// <returns></returns>
        public GameUrlResponse GameUrl(string gameKey, long userId, string version, int osType, string deviceCode, string nickName)
        {
            GameUrlResult gameUrl = new GameUrlResult
            {
                deviceCode = deviceCode,
                gameKey    = gameKey,
                nickName   = nickName,
                osType     = osType,
                version    = version,
                userId     = userId.ToString(),
                channelId  = "010010000000000"
            };
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(gameUrl));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"获取游戏地址请求参数{strJson}");
            string strUrl   = string.Format(_options.Value.Url, "v1", "gameUrl");
            var    response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"获取游戏地址返回值{JsonHelper.SerializeObject(response)}");
            var result = JsonHelper.DeserializeJsonToObject <GameUrlResponse>(_sys.Base64Decode(response.Data));

            return(result);
        }
Пример #3
0
        /// <summary>
        /// 海峡竞技从章鱼获取订单状态
        /// </summary>
        /// <param name="forderId"></param>
        /// <returns></returns>
        public CostStatusResult CostOrderStatus(string forderId)
        {
            CostStatusResult        result       = new CostStatusResult();
            CostorderStatusResult   statusResult = null;
            CostOrderStatusResponse costStatus   = new CostOrderStatusResponse
            {
                forderId = forderId,
                type     = "1"
            };
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _haixiaoptions.Value.appKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(costStatus));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_haixiaoptions.Value.secret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"根据兑出订单号查询订单状态请求参数{strJson}");
            string strUrl   = string.Format(_haixiaoptions.Value.url, "v1", "partnerFind");
            var    response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"根据兑出订单号查询订单状态返回值{JsonHelper.SerializeObject(response)}");
            statusResult = JsonHelper.DeserializeJsonToObject <CostorderStatusResult>(_sys.Base64Decode(response.Data));
            if (statusResult.status == "1")
            {
                result.code    = 0;
                result.message = "成功";
            }
            else
            {
                result = null;
            }
            return(result);
        }
Пример #4
0
        /// <summary>
        /// 账户退款
        /// author:林辉
        /// </summary>
        /// <param name="refund"></param>
        /// <returns></returns>
        public async Task <bool> Refund(RefundDto refund)
        {
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(refund));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strJson = JsonHelper.SerializeObject(Request);
            string strUrl  = string.Format(_options.Value.Url, "v1", "refund");

            _log.Info($"账户退款请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"账户退款返回值{JsonHelper.SerializeObject(response)}");
            var result = JsonHelper.DeserializeJsonToObject <CostStatusResult>(_sys.Base64Decode(response.Data));

            if (result.code == 0)
            {
                var entity = await _context.Exchange.FirstOrDefaultAsync(m => m.OrderId == refund.forderId);

                if (entity == null)
                {
                    return(false); //订单不存在
                }
                entity.Status = 1; //退款
                await _context.SaveChangesAsync();

                return(true);
            }
            return(false);
        }
Пример #5
0
        /// <summary>
        /// 赠币
        /// author:林辉
        /// </summary>
        /// <returns></returns>
        public async Task <bool> GiveCurrencyAsync(GiveCurrencyDto giveCurrency)
        {
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(giveCurrency));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strJson = JsonHelper.SerializeObject(Request);
            string strUrl  = string.Format(_options.Value.Url, "v1", "gift");

            _log.Info($"用户赠币请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));
            var result   = JsonHelper.DeserializeJsonToObject <CostStatusResult>(_sys.Base64Decode(response.Data));

            _log.Info($"用户赠币返回值{JsonHelper.SerializeObject(response)}");
            if (result.code == 0)
            {
                GiveCurrencyLogDto giveCurrencyLogDto = new GiveCurrencyLogDto
                {
                    CreateTime = DateTime.Now,
                    Key        = giveCurrency.key,
                    Order      = giveCurrency.forderId,
                    UserId     = long.Parse(giveCurrency.fuserId)
                };
                var entity = _mapper.Map <GiveCurrencyLogDto, GiveCurrencyLogEntity>(giveCurrencyLogDto);
                _context.giveCurrencyLog.Add(entity);
                await _context.SaveChangesAsync();

                return(true);
            }
            return(false);
        }
Пример #6
0
        /// <summary>
        /// 查询用户竞猜列表
        /// author:陶林辉
        /// </summary>
        /// <param name="userId">用户id</param>
        /// <param name="type">1000 全部、1001 收入、1002 支出、1010 中奖、1012 充值、1014 退款、1016 兑换、1017 投注</param>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">页面大小</param>
        /// <returns></returns>
        public OrderList AcquireOrder(long userId, int type, int pageIndex, int pageSize)
        {
            FundRequest Fund = new FundRequest
            {
                FuserId = userId,
                Type    = type
            };
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.Page = new pagerequest
            {
                PageIndex = pageIndex == 0 ? 1 : pageIndex,
                PageSize  = pageSize == 0 ? 20 : pageSize,
            };
            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(Fund));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strUrl  = string.Format(_options.Value.Url, "v1", "orderList");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"查询用户竞猜列表请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"查询用户竞猜列表返回值{JsonHelper.SerializeObject(response)}");
            if (response.Code == "0")
            {
                var vResult = JsonHelper.DeserializeJsonToObject <OrderList>(_sys.Base64Decode(response.Data));
                if (vResult != null)
                {
                    vResult.Page = new PageInfo()
                    {
                        Count      = response.Page.Count,
                        PageIndex  = response.Page.PageIndex,
                        PageSize   = response.Page.PageSize,
                        PageTotal  = response.Page.PageTotal,
                        Totaltotal = response.Page.Totaltotal,
                    };
                }
                return(vResult);
            }
            return(null);
        }
Пример #7
0
        /// <summary>
        /// 获取竞猜游戏列表
        /// author:陶林辉
        /// </summary>
        /// <returns></returns>
        public MatchTypeList AcquireGuessMatch()
        {
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = null;
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strUrl  = string.Format(_options.Value.Url, "v1", "sportTypeList");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"获取竞猜游戏列表请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"获取竞猜游戏列表返回值{JsonHelper.SerializeObject(response)}");
            if (response.Code == "0")
            {
                var vResult = JsonHelper.DeserializeJsonToObject <MatchTypeList>(_sys.Base64Decode(response.Data));
                return(vResult);
            }
            return(null);
        }
Пример #8
0
        /// <summary>
        /// 根据兑出订单号查询订单状态
        /// author:林辉
        /// </summary>
        /// <param name="forderId">第三方订单号</param>
        /// <returns></returns>
        public CostStatusResult CostStatus(string forderId)
        {
            CostStatusResult   result     = null;
            CostStatusResponse costStatus = new CostStatusResponse
            {
                forderId = forderId
            };
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(costStatus));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"根据兑出订单号查询订单状态请求参数{strJson}");
            string strUrl   = string.Format(_options.Value.Url, "v1", "costStatus");
            var    response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"根据兑出订单号查询订单状态返回值{JsonHelper.SerializeObject(response)}");
            result = JsonHelper.DeserializeJsonToObject <CostStatusResult>(_sys.Base64Decode(response.Data));
            return(result);
        }
Пример #9
0
        /// <summary>
        /// 新获取竞猜游戏列表
        /// author:白尚德
        /// </summary>
        /// <returns></returns>
        public MatchList NewAcquireGuessMatch()
        {
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = null;
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strUrl  = string.Format(_options.Value.Url, "v1", "sportTypeList");
            string strJson = JsonHelper.SerializeObject(Request);
            var    url     = "https://guessgame.funhainan.com/v1/sportTypeList";

            _log.Info($"获取竞猜游戏列表请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <NewMatchTypeList>(_sys.PostJsonData(url, strJson, Encoding.UTF8));

            _log.Info($"获取竞猜游戏列表返回值{JsonHelper.SerializeObject(response)}");
            if (response.code == "0")
            {
                var vResult = response.data;
                return(vResult);
            }
            return(null);
        }
Пример #10
0
        /// <summary>
        /// 竞猜投注详情
        /// author:陶林辉
        /// </summary>
        /// <param name="forderId">第三方订单 Id</param>
        /// <returns></returns>
        public Order AcquireOrderDetail(string forderId)
        {
            OrderDetailRequest OrderDetail = new OrderDetailRequest
            {
                ForderId = forderId
            };
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(OrderDetail));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strUrl  = string.Format(_options.Value.Url, "v1", "orderDetail");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"竞猜投注详情请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"竞猜投注详情返回值{JsonHelper.SerializeObject(response)}");
            var vResult = JsonHelper.DeserializeJsonToObject <Order>(_sys.Base64Decode(response.Data));

            return(vResult);
        }
Пример #11
0
        /// <summary>
        /// 账户充值
        /// author:陶林辉
        /// </summary>
        /// <param name="userId">用户id</param>
        /// <param name="orderId">订单号</param>
        /// <param name="amount">充值虚拟币金额,</param>
        /// <param name="key">充值key</param>
        /// <returns></returns>
        public bool Recharge(long userId, string orderId, double amount, string key)
        {
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(new RechargeRequest()
            {
                amount   = amount / 100,
                forderId = orderId,
                fuserId  = userId.ToString(),
                rateKey  = key,
            }));
            Request.Sign = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strUrl  = string.Format(_options.Value.Url, "v1", "recharge");
            string strJson = JsonHelper.SerializeObject(Request);

            _log.Info($"账户充值请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));

            _log.Info($"账户充值返回值{JsonHelper.SerializeObject(response)}");
            return(response.Code == "0");
        }
Пример #12
0
        /// <summary>
        /// 商品兑换
        /// author:林辉
        /// </summary>
        /// <param name="exchange"></param>
        /// <returns></returns>
        public async Task <bool> Exchange(ExchangeDto exchange)
        {
            ZhangYuRequest Request = new ZhangYuRequest();

            Request.AppKey = _options.Value.AppKey;
            Request.Data   = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(exchange));
            Request.Sign   = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}");
            string strJson = JsonHelper.SerializeObject(Request);
            string strUrl  = string.Format(_options.Value.Url, "v1", "exchange");

            _log.Info($"商品兑换请求参数{strJson}");
            var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8));
            var result   = JsonHelper.DeserializeJsonToObject <CostStatusResult>(_sys.Base64Decode(response.Data));

            _log.Info($"商品兑换返回值{JsonHelper.SerializeObject(response)}");
            if (result.code == 0)
            {
                UserExchangeDto temp = new UserExchangeDto
                {
                    Amount     = exchange.Amount,
                    CreateTime = DateTime.Now,
                    Name       = exchange.Name,
                    OrderId    = exchange.ForderId,
                    UserId     = long.Parse(exchange.FuserId),
                    Price      = exchange.Price,
                    Quantity   = exchange.Quantity,
                    Status     = 0 //0正常,1退款
                };
                var entity = _mapper.Map <UserExchangeDto, UserExchangeEntity>(temp);
                _context.Exchange.Add(entity);
                await _context.SaveChangesAsync();

                return(true);
            }
            return(false);
        }