Пример #1
0
        /// <summary>
        /// 记录欧非充值订单
        /// author:白尚德
        /// </summary>
        /// <param name="ofpayLog"></param>
        /// <returns></returns>
        public async Task <bool> OfpayLogAsync(OfpayLogDto ofpayLog)
        {
            var entity = _mapper.Map <OfpayLogDto, OfpayLogEntity>(ofpayLog);

            _context.OfpayLog.Add(entity);
            return(await _context.SaveChangesAsync() > 0);
        }
Пример #2
0
        public async Task <H5ResponseViewModel <object> > PrepaidRefill([FromBody] H5RequestViewModel obj)
        {
            H5ResponseViewModel <object> response = null;
            var  code  = SysCode.Ok;
            bool isLog = _token.VerifyToken((string)obj.data.userOpenId, (string)obj.data.sessionToken);

            if (isLog)
            {
                string       strJson = RedisHelper.StringGet($"{CacheKey.Token}{(string)obj.data.userOpenId}", RedisFolderEnum.token, RedisEnum.Three);
                UserLoginDto userLog = JsonHelper.DeserializeJsonToObject <UserLoginDto>(strJson);
                //获取商品信息
                var ofpaybyid = await _ofpay.GetOfOayByIdAsync(long.Parse((string)obj.data.ofpayId));

                OfpayLogDto ofpayLog = new OfpayLogDto
                {
                    CreateTime = DateTime.Now,
                    OfPay_Id   = ofpaybyid.Id,
                    Order_Id   = Guid.NewGuid().ToString(),
                    Phone      = userLog.Phone,
                    Status     = 1,
                    UpdateTime = DateTime.Now,
                    UserId     = userLog.Userid,
                };
                if (!await _ofpay.OfpayLogAsync(ofpayLog))
                {
                    //这里如果报错会直接进异常不会执行下面的代码
                    _log.Error($"话费充值接口生成本地订单错误,参数{ofpayLog}");
                }
                if (await _ofpay.PrepaidRefillAsync(ofpayLog.Phone, ofpaybyid.Cardnum, ofpayLog.Order_Id))
                {
                    ExchangeDto exchange = new ExchangeDto
                    {
                        Amount   = double.Parse(ofpaybyid.Currency), //总价
                        ForderId = ofpayLog.Order_Id,
                        FuserId  = userLog.Userid.ToString(),
                        Name     = "虚拟商品兑出",                         //ofpaybyid.Name,
                        Price    = double.Parse(ofpaybyid.Currency), //单价
                        Quantity = 1
                    };
                    //关闭章鱼兑换
                    // await _biz.Exchange(exchange);
                    //从php兑出
                    await _accout.Exchange_php(exchange);
                }
                else
                {
                    code = SysCode.Err;
                }
                _log.Info($"欧飞充值记录,参数为{ofpayLog}结果为{code}");
            }
            else
            {
                code = SysCode.SessionTokenLose;
            }
            response = new H5ResponseViewModel <object>(code, null);
            return(response);
        }