/// <summary> /// 退款查询 /// </summary> /// <param name="dto"></param> /// <returns></returns> public RefundQueryResult RefundQuery(RefundDTO dto) { WeixinDataHelper data = new WeixinDataHelper(this._weixinKey); //忽略:微信退款单号,优先级最高data.SetValue("refund_id", refund_id); // if (!string.IsNullOrEmpty(dto.OutRefundNo)) { data.SetValue("out_refund_no", dto.OutRefundNo);//商户退款单号,优先级第二 } else if (!string.IsNullOrEmpty(dto.OnlineTradeNo)) { data.SetValue("transaction_id", dto.OnlineTradeNo);//微信订单号,优先级第三 } else { data.SetValue("out_trade_no", dto.OutTradeNo);//商户订单号,优先级最低 } WeixinDataHelper response = weixinPayApi.RefundQuery(data);//提交退款查询给API,接收返回数据 var result = new RefundQueryResult(); result.SetWeixiResult(response); return(result); }
#pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释 public RefundQueryResult RefundQuery(WeChatRefundQueryParamter paramter) #pragma warning restore CS1591 // 缺少对公共可见类型或成员的 XML 注释 { string nonceStr = TenPayV3Util.GetNoncestr(); TenPayV3RefundQueryRequestData tenPayV3RefundRequestData = new TenPayV3RefundQueryRequestData(Options.WeChatBaseOptions.AppId, Options.WeChatBaseOptions.MchId, Options.WeChatBaseOptions.Key, nonceStr, paramter.DeviceInfo, paramter.TransactionId, paramter.OutTradeNo, paramter.OutRefundNo, paramter.RefundId, null, null, paramter.Offset); RefundQueryResult refundQueryResult = TenPayV3.RefundQuery(tenPayV3RefundRequestData); return(refundQueryResult); }
/// <summary> /// 退款查询 /// </summary> /// <param name="dto"></param> /// <returns></returns> public RefundQueryResult RefundQuery(RefundDTO dto) { AlipayTradeRefundQueryDTO refundQueryDto = new AlipayTradeRefundQueryDTO(); refundQueryDto.trade_no = dto.OnlineTradeNo; refundQueryDto.out_trade_no = dto.OutTradeNo; refundQueryDto.out_request_no = dto.OutRefundNo; AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest(); request.BizContent = refundQueryDto.BuildJson(); AlipayTradeFastpayRefundQueryResponse response = Execute(request); var result = new RefundQueryResult(); result.SetAlipayResult(response); return(result); }
/// <summary> /// 微信退款订单查询结果 /// </summary> /// <param name="xml">xml</param> /// <returns>微信退款订单查询结果</returns> public static RefundQueryResult ConvertToRefundQueryResult(string xml) { RefundQueryResult refundQueryResult = new RefundQueryResult(); xml = xml.Replace("$", "xml"); XElement doc = XElement.Parse(xml); if (doc.Element("return_code").GetString() == "SUCCESS") { if (doc.Element("result_code").GetString() == "SUCCESS") { refundQueryResult.IsSuccess = true; var details = new List <RefundQueryDetails>(); for (int i = 0; i < doc.Element("refund_count").GetInt(); i++) { details.Add(new RefundQueryDetails { RefundStatus = doc.Element("refund_status_" + i).GetString(), OutRefundNo = doc.Element("out_refund_no_" + i).GetString(), RefundFee = doc.Element("refund_fee_" + i).GetInt(), RefundId = doc.Element("refund_id_" + i).GetString(), }); } refundQueryResult.Details = details; } else { refundQueryResult.IsSuccess = false; refundQueryResult.Message = doc.Element("err_code_des").GetString(); } } else { refundQueryResult.IsSuccess = false; refundQueryResult.Message = doc.Element("return_msg").GetString(); } return(refundQueryResult); }
/// <summary> /// 退款查询(航旅版) /// </summary> /// <param name="request">请求查询</param> /// <returns>结果</returns> public static RefundQueryResult QueryRefund(RefundQueryRequest request) { RefundQueryResult refundQueryResult = new RefundQueryResult(); var config = request.Config; Submit submit = new Submit(config); SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string> { { "partner", config.GetPid() }, { "_input_charset", Config.InputCharset.ToLower() }, { "service", "refund_fastpay_query" } }; if (!string.IsNullOrWhiteSpace(request.BatchNo)) { sParaTemp.Add("batch_no", request.BatchNo); } else { sParaTemp.Add("trade_no", request.TradeNo); } string requestStr; var responseStr = submit.BuildRequest(sParaTemp, out requestStr); refundQueryResult.RequestStr = requestStr; refundQueryResult.ResponseStr = responseStr; var dic = Core.UrlToData(responseStr); try { if (dic.ContainsKey("is_success")) { string isSuccess = dic["is_success"]; if (isSuccess == "T") { if (dic.ContainsKey("result_details")) { refundQueryResult.IsSuccess = true; refundQueryResult.ResultDetails = new RefundResultDetails(dic["result_details"]); } else { refundQueryResult.Message = "result_details参数为空"; } return(refundQueryResult); } else { if (dic.ContainsKey("error")) { refundQueryResult.Message = dic["error"]; return(refundQueryResult); } else { refundQueryResult.Message = "error参数为空"; return(refundQueryResult); } } } else { refundQueryResult.Message = "is_success参数为空"; return(refundQueryResult); } } catch (Exception exp) { refundQueryResult.Message = exp.Message; return(refundQueryResult); } }