public async Task <IActionResult> Refund(string out_refund_no, string transaction_id, string out_trade_no, int total_fee, int refund_fee, string refund_desc) { var request = new WeChatPayRefundRequest() { OutRefundNo = out_refund_no, TransactionId = transaction_id, OutTradeNo = out_trade_no, TotalFee = total_fee, RefundFee = refund_fee, RefundDesc = refund_desc, }; var response = await _certClient.ExecuteAsync(request); return(Ok(response.Body)); }
public async Task <IActionResult> Refund(WeChatPayRefundViewModel viewModel) { var request = new WeChatPayRefundRequest { OutRefundNo = viewModel.OutRefundNo, TransactionId = viewModel.TransactionId, OutTradeNo = viewModel.OutTradeNo, TotalFee = viewModel.TotalFee, RefundFee = viewModel.RefundFee, RefundDesc = viewModel.RefundDesc, NotifyUrl = viewModel.NotifyUrl }; var response = await _client.ExecuteAsync(request, _optionsAccessor.Value); return(Ok(response.Body)); }
public async Task <IActionResult> Refund(WeChatPayRefundViewModel viewModel) { var request = new WeChatPayRefundRequest() { OutRefundNo = viewModel.OutRefundNo, TransactionId = viewModel.TransactionId, OutTradeNo = viewModel.OutTradeNo, TotalFee = viewModel.TotalFee, RefundFee = viewModel.RefundFee, RefundDesc = viewModel.RefundDesc, NotifyUrl = viewModel.NotifyUrl, }; var response = await _client.ExecuteAsync(request); ViewData["response"] = response.Body; return(View()); }
public async Task <RefundResult> Refund(PayRequest request) { var order = OrderService.Get(request.Id); var refund = OrderService.GetRefund(order, request.Refund_Money, request.Refund_Desc); var req = new WeChatPayRefundRequest { OutRefundNo = refund.Order_SN, TransactionId = order.Pay_Id, OutTradeNo = order.Order_SN, TotalFee = (int)(order.Pay_Money * 100), RefundFee = (int)(refund.Order_Money * 100), RefundDesc = refund.Order_Desc, NotifyUrl = request.NotifyUrl }; logger.LogDebug($"Wepay Refund begin with: {request.Id}"); var res = await client.ExecuteAsync(req, options.Value); if (res.ReturnCode == "SUCCESS" && res.ResultCode == "SUCCESS") { logger.LogDebug($"Wepay Refund end with: {request.Id} SUCCESS"); order = OrderService.Refund(order, PayType.Wechat); return(new RefundResult { Success = true, Order = order, Refund = OrderService.Refunded( refund, res.RefundId, (decimal)(res.RefundFee / 100.0), DateTime.Now.ToStr("yyyyMMddHHmmss") ) }); } logger.LogDebug($"Wepay Refund end with: {request.Id} FAIL: {res.ErrCode}:{res.ErrCodeDes}"); return(new RefundResult { Success = false, Error = $"{res.ErrCode}:{res.ErrCodeDes}" }); }
public async Task <IActionResult> Refund(string out_refund_no, string transaction_id, string out_trade_no, int total_fee, int refund_fee, string refund_desc, string notify_url) { var request = new WeChatPayRefundRequest { OutRefundNo = out_refund_no, TransactionId = transaction_id, OutTradeNo = out_trade_no, TotalFee = total_fee, RefundFee = refund_fee, RefundDesc = refund_desc, NotifyUrl = notify_url }; var response = await _client.ExecuteAsync(request, "wechatpayCertificateName"); ResponseModel responseModel = new ResponseModel() { code = HTTPResponseCode.PartialContent, data = response.Body }; Dictionary <string, string> result = new Dictionary <string, string>(); result.Add("return_code", response.ReturnCode); result.Add("return_msg", response.ReturnMsg); if (response.ReturnCode == "SUCCESS" && response.ResultCode == "SUCCESS") { responseModel.code = HTTPResponseCode.Successful; } else { responseModel.code = HTTPResponseCode.BadRequest; result.Add("err_code", response.ErrCode); result.Add("err_code_des", response.ErrCodeDes); } responseModel.message = JsonConvert.SerializeObject(result); return(Json(responseModel)); }
public async Task <WeChatPayRefundResponse> Refund([FromQuery] WeChatSignSettings weChatSignSettings, [FromBody] WeChatPayRefundRequest refundRequest) { try { WeChatPayRefundResponse result = await _weChatPayClient.Refund(weChatSignSettings, refundRequest); return(result); } catch (Exception ex) { throw; } }