Beispiel #1
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);
        }
Beispiel #2
0
        /// <summary>
        /// 退款
        /// </summary>
        /// <param name="request"></param>
        public static RefundResponse Refund(RefundDto request)
        {
            request.sign = EncryptUtil.GetSign(request);
            var response = WebUtils.HttpPost <RefundDto, RefundResponse>("http://118.178.35.56/refund", request);

            return(response);
        }
        public IActionResult ProcessRefund(RefundDto refundDto)
        {
            var sale   = _saleService.GetSale(refundDto.SaleInvoiceId);
            var refund = _mapper.Map <RefundDto, Refund>(refundDto);

            if (sale == null)
            {
                return(BadRequest("That invoice number does not exist"));
            }
            else if (refund.Amount > sale.Total)
            {
                return(BadRequest("The refund amount can not be more than the amount paid for the sale"));
            }
            else if (refund.Amount <= 0)
            {
                return(BadRequest("The refund amount can not less or equal to zero"));
            }
            else if (string.IsNullOrWhiteSpace(refund.Reason))
            {
                return(BadRequest("You must provide a reason for the refund"));
            }
            else if (refund.Reason.Length > 99)
            {
                return(BadRequest("The reason must be under 100 characters"));
            }
            else
            {
                refund.RefundDate = DateTime.Now;
                _repo.AddRefund(refund);
                return(Ok("refund successfully processed"));
            }
        }
Beispiel #4
0
        /// <summary>
        /// 获得退款信息
        /// </summary>
        /// <param name="id">退款id</param>
        /// <returns></returns>
        public RefundDto Find(int id)
        {
            var v = from r in this.DbContext.Refunds
                    join m in this.DbContext.Members on r.UserId equals m.Id into mi
                    from m in mi.DefaultIfEmpty()
                    where r.Id == id
                    select new RefundDto()
            {
                Account  = m.ImAlipay,
                RealName = m.Real_name,
                Money    = r.Money,
                OutBizNo = r.OutBizNo
            };
            RefundDto dto = v.FirstOrDefault();

            return(dto);
        }
        private void BtPlazo_Click(object sender, RoutedEventArgs e)
        {
            if (Limite.SelectedDate != null && Refund.SelectedItem != null)
            {
                var nuevoRefund = new RefundDto {
                    date_refund = (DateTime)Limite.SelectedDate,
                    refund      = double.Parse(Refund.SelectedItem.ToString().Replace("%", ""))
                };
                Plazos_list.Items.Add(nuevoRefund);
                Limite.SelectedDate = null;
                if (nuevoRefund.date_refund.Date.Year == limites.FechaFin.Date.Year &&
                    nuevoRefund.date_refund.Date.Month == limites.FechaFin.Date.Month &&
                    nuevoRefund.date_refund.Date.Day == limites.FechaFin.Date.Day)
                {
                    Limite.IsEnabled = false;
                }

                else
                {
                    Limite.DisplayDateStart = nuevoRefund.date_refund.AddDays(1);
                }
                Refund.SelectedItem = null;
            }
        }
 /// <summary>
 /// Возврат, согласованный клиентом или партнёром.
 /// </summary>
 /// <param name="dto">Параметры возврата.</param>
 public RefundResponse Refund(RefundDto dto) => Post <RefundResponse>("refund", dto);