/// <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); }
/// <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")); } }
/// <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);