Esempio n. 1
0
        /// <summary>
        /// 记录苹果充值记录
        /// author:陶林辉
        /// </summary>
        /// <param name="appleReceiptDto"></param>
        /// <returns></returns>
        public async Task <bool> RecordAppleOrderAsync(AppleReceiptDto appleReceiptDto)
        {
            var entity = _mapper.Map <AppleReceiptDto, AppleReceiptEntity>(appleReceiptDto);

            _context.AppleReceipt.Add(entity);
            return(await _context.SaveChangesAsync() > 0);
        }
Esempio n. 2
0
        /// <summary>
        /// 更新苹果订单
        /// author:陶林辉
        /// </summary>
        /// <param name="appleReceiptDto"></param>
        /// <returns></returns>
        public async Task <bool> UpdateAppleOrderAsync(AppleReceiptDto appleReceiptDto)
        {
            var entity = await _context.AppleReceipt.FirstOrDefaultAsync(m => m.Order_id == appleReceiptDto.Order_id);

            entity.Receipt    = appleReceiptDto.Receipt;
            entity.Updatetime = appleReceiptDto.Updatetime;
            return(await _context.SaveChangesAsync() > 0);;
        }
Esempio n. 3
0
        public async Task <ResponseViewModel <object> > UploadingReceipt([FromBody] RequestViewModel obj)
        {
            ResponseViewModel <object> response = null;

            obj = JsonHelper.DeserializeJsonToObject <RequestViewModel>(Content(User.Identity.Name).Content);
            var  sysCode = SysCode.Ok;
            bool isLog   = _token.VerifyToken(obj.HendInfo.UserOpenId, obj.HendInfo.SessionToken);

            if (isLog)
            {
                string     strJson = RedisHelper.StringGet($"{CacheKey.Token}{obj.HendInfo.UserOpenId}", RedisFolderEnum.token, RedisEnum.Three);
                var        userLog = JsonHelper.DeserializeJsonToObject <UserLoginDto>(strJson);
                ReceiptDto receipt = new ReceiptDto
                {
                    AppleId = (string)obj.Data.appleId,
                    Id      = (string)obj.Data.productId,
                    OrderId = (string)obj.Data.orderId,
                    Receipt = (string)obj.Data.receipt
                };
                AppleReceiptDto appleReceipt = new AppleReceiptDto()
                {
                    Updatetime = DateTime.Now,
                    Receipt    = receipt.Receipt,
                    Order_id   = receipt.OrderId,
                };
                if (_recharge.VerifyReceipt(receipt))
                {
                    //获取商品信息
                    RechargeCommodityDto rechargeCommodity = await _recharge.GetAppleProductAsync(receipt.AppleId);

                    //充值虚拟币
                    double amount = double.Parse(rechargeCommodity.Amount.ToString());

                    //关闭章鱼充值
                    //if (_accout.Recharge_php(userLog.Userid, receipt.OrderId, amount, "充值", "hiAlipay"))
                    //从php充值
                    if (_accout.Recharge_php(userLog.Userid, receipt.OrderId, amount, "充值", "yibiyibaidekey"))
                    {
                        //更新苹果订单
                        await _recharge.UpdateAppleOrderAsync(appleReceipt);

                        //更新充值记录
                        await _recharge.UpdateRechargeLogAsync("2", receipt.OrderId);
                    }
                }
            }
            else
            {
                /*短令牌失效*/
                sysCode = SysCode.SessionTokenLose;
            }
            response = new ResponseViewModel <object>(sysCode, null, obj.Encrypt, _sys, obj.Secret);
            return(response);
        }
Esempio n. 4
0
        public async Task <ResponseViewModel <AppleProductViewModel> > AcquireAppleProduct([FromBody] RequestViewModel obj)
        {
            ResponseViewModel <AppleProductViewModel> response = null;

            obj = JsonHelper.DeserializeJsonToObject <RequestViewModel>(Content(User.Identity.Name).Content);
            var  sysCode = SysCode.Ok;
            bool isLog   = _token.VerifyToken(obj.HendInfo.UserOpenId, obj.HendInfo.SessionToken);
            AppleProductViewModel result = null;

            if (isLog)
            {
                int          itemId  = int.Parse((string)obj.Data.itemId);
                string       strJson = RedisHelper.StringGet($"{CacheKey.Token}{obj.HendInfo.UserOpenId}", RedisFolderEnum.token, RedisEnum.Three);
                UserLoginDto userLog = JsonHelper.DeserializeJsonToObject <UserLoginDto>(strJson);
                var          dto     = await _recharge.GetAppleProductAsync(itemId); //查询苹果商品信息

                if (dto != null)
                {
                    /*苹果充值记录*/
                    AppleReceiptDto appleReceipt = new AppleReceiptDto()
                    {
                        Apple_id   = dto.Product_id,
                        Item_id    = itemId,
                        Createtime = DateTime.Now,
                        Receipt    = "",
                        Userid     = userLog.Userid,
                        Updatetime = DateTime.Now,
                        Order_id   = Guid.NewGuid().ToString(),
                    };
                    await _recharge.RecordAppleOrderAsync(appleReceipt);

                    /*用户充值记录*/
                    RechargeDto recharge = new RechargeDto()
                    {
                        Amount     = dto.Amount,
                        createtime = DateTime.Now,
                        Order_id   = appleReceipt.Order_id,
                        Pay_type   = 0, //0苹果内购, 1支付宝,2微信 ,3卡密
                        Status     = 1, //1 待处理 2 已支付 3 支付失败 4 超时
                        UserId     = userLog.Userid,
                        updatetime = DateTime.Now,
                    };
                    await _recharge.RecordRechargeLogAsync(recharge);

                    result = new AppleProductViewModel
                    {
                        AppleId   = dto.Apple_id,
                        ProductId = dto.Product_id,
                        OrderId   = recharge.Order_id,//记录充值订
                    };
                }
            }
            else
            {
                /*短令牌失效*/
                sysCode = SysCode.SessionTokenLose;
            }

            response = new ResponseViewModel <AppleProductViewModel>(sysCode, sysCode == SysCode.Ok ? result : null, obj.Encrypt, _sys, obj.Secret);
            return(response);
        }