/// <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;
            }
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
 /// <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);
     }
 }
Esempio n. 4
0
        /// <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));
        }