/// <summary> /// 退款 /// </summary> /// <param name="out_trade_no"></param> /// <param name="total_fee"></param> /// <param name="refund_fee"></param> public async Task <RefundResult> Refund(RefundParam param) { try { var url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; var data = new SortedDictionary <string, object>(); data.SetValue("appid", _wxOptions.WxAppId); data.SetValue("mch_id", _wxOptions.MechId); data.SetValue("nonce_str", WeChatPayUtility.GeneratorNonceStr()); data.SetValue("out_trade_no", param.OutTradeNo); data.SetValue("out_refund_no", WeChatPayUtility.GenerateOutTradeNo()); data.SetValue("total_fee", param.TotalFee); data.SetValue("refund_fee", param.RefundFee); data.SetValue("sign", WeChatPayUtility.MakeSign(data.ToUrlString(), _wxOptions.MechKey)); var xml = data.ToXml(); var result = await _aSampleHttpClient.PostAsync <RefundResult>(url, xml, DeserializeType.XmlDeserialize); return(result); } catch (Exception ex) { throw ex; } }
/// <summary> /// 退款 /// </summary> /// <param name="param"></param> /// <returns></returns> public PayResultInfo RefundAcc(RefundParam param) { Dictionary <String, String> parameters = new Dictionary <String, String>(); parameters.Add("loginId", SysBLL.getCpuNo()); parameters.Add("reqsn", SysBLL.getSerialNum()); parameters.Add("refundType", param.refundType); parameters.Add("authcode", param.authcode); parameters.Add("orderno", param.orderno); parameters.Add("refundMsg", param.refundMsg); parameters.Add("remarks", param.remarks); string jsonText = HttpHelper.getHttp(SysConfigHelper.readerNode("BusLoginName"), parameters, null); //反序列化JSON字符串,将JSON字符串转换成LIST列表 return(JsonConvert.DeserializeObject <PayResultInfo>(jsonText)); }
/// <summary> /// 退款 /// </summary> /// <param name="orderinfo"></param> /// <param name="payResultInfo"></param> /// <param name="p"></param> public void refund(ref PayResultInfo payResultInfo, PayParam p) { try { RefundParam refundParam = new RefundParam(); //交易类型 refundParam.serviceType = p.serviceType; //是否写卡成功 refundParam.rqFlushesCode = p.rqFlushesCode; //交易类型 refundParam.shop_type = isWtLkl(p.icParams); //云平台订单号 refundParam.cloud_no = p.orderNo; //交易金额 payResultInfo.map["4"] = p.rechageAmount; //退款 if (p.icParams == null) { //万通退款 refundParam.data = Wanton.wtRefund(payResultInfo.map, p.MERCHANTNO_shopNo); } else { //银行卡退款 refundParam.data = LKLProcedure.wtPayRevoke(payResultInfo.map, p); } PayAccess payAccess = new PayAccess(); //发起退款 PayResultInfo result = payAccess.RefundAcc(refundParam); if ("0000".Equals(result.code)) { log.Write("退款成功!"); } else { log.Write("退款失败!"); } } catch (Exception ex) { log.Write("error:退款异常:" + ex.Message + ex.InnerException); } }
/// <summary> /// 退款 /// </summary> /// <param name="param"></param> /// <returns></returns> public PayResultInfo RefundAcc(RefundParam param) { Dictionary <String, String> parameters = new Dictionary <String, String>(); parameters.Add("loginId", SysBLL.getCpuNo()); parameters.Add("reqsn", SysBLL.getSerialNum()); parameters.Add("serviceType", param.serviceType); parameters.Add("authcode", SysBLL.Authcode); parameters.Add("transType", "02"); parameters.Add("rqFlushesCode", param.rqFlushesCode); parameters.Add("tr.message_type", "4"); parameters.Add("tr.shop_type", param.shop_type); parameters.Add("tr.t_id", ConfigurationManager.AppSettings["MechineNo"]); parameters.Add("tr.data", param.data); parameters.Add("tr.cloud_no", param.cloud_no); string jsonText = HttpHelper.getHttp(SysConfigHelper.readerNode("refundNewName"), parameters, null); //反序列化JSON字符串,将JSON字符串转换成LIST列表 return(JsonConvert.DeserializeObject <PayResultInfo>(jsonText)); }