Beispiel #1
0
        private void ZFBPayRefund(string amount, string id)
        {
            AlipayTradeRefundContentBuilder builder      = BuildContent(amount, id);
            AlipayF2FRefundResult           refundResult = serviceClient.tradeRefund(builder);

            switch (refundResult.Status)
            {
            case ResultEnum.SUCCESS:
                DoSuccessProcess(refundResult);
                break;

            case ResultEnum.FAILED:
                DoFailedProcess(refundResult);
                break;

            case ResultEnum.UNKNOWN:
                //if (refundResult.response == null)
                //{
                //    result = "配置或网络异常,请检查";
                //}
                //else
                //{
                //    result = "系统异常,请走人工退款流程";
                //}
                break;
            }

            MessageBox.Show("" + result);
        }
        protected void BtnAlipay_Click(object sender, EventArgs e)
        {
            ////////////////////////////////////////////请求参数////////////////////////////////////////////


            AlipayTradeRefundContentBuilder builder = BuildContent();


            AlipayF2FRefundResult refundResult = serviceClient.tradeRefund(builder);

            //请在这里加上商户的业务逻辑程序代码
            //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
            switch (refundResult.Status)
            {
            case AlipayResultEnum.SUCCESS:
                DoSuccessProcess(refundResult);
                break;

            case AlipayResultEnum.FAILED:
                DoFailedProcess(refundResult);
                break;

            case AlipayResultEnum.UNKNOWN:
                if (refundResult.response == null)
                {
                    result = "配置或网络异常,请检查";
                }
                else
                {
                    result = "系统异常,请走人工退款流程";
                }
                break;
            }
            Response.Redirect("result.aspx?Text=" + result);
        }
Beispiel #3
0
 private void DoFailedProcess(AlipayF2FRefundResult refundResult, ref Result <AlipayF2FRefundResult> result)
 {
     //请添加退款失败后的处理
     //result = refundResult.response.Body;
     result.Message = "退款失败";
     result.Data    = refundResult;
     result.Status  = false;
 }
Beispiel #4
0
 private void DoSuccessProcess(AlipayF2FRefundResult refundResult, ref Result <AlipayF2FRefundResult> result)
 {
     //请添加退款成功后的处理
     //result = refundResult.response.Body;
     result.Message = "退款成功";
     result.Data    = refundResult;
     result.Status  = true;
 }
Beispiel #5
0
        public virtual RefoundResult Refound(RefoundParameter parameter)
        {
            if (parameter.TradeID.IsNullOrEmpty())
            {
                throw new Exception("TradeID is null");
            }
            Config config        = new Alipay.Config(PayFactory.GetInterfaceXmlConfig(PayInterfaceType.AlipayBarcode, parameter.TradeID));
            var    serviceClient = config.AppConfig.CreateClientInstance();

            AlipayTradeRefundContentBuilder builder = new AlipayTradeRefundContentBuilder();

            //支付宝交易号与商户网站订单号不能同时为空
            builder.out_trade_no = parameter.TradeID;

            //退款金额
            builder.refund_amount = parameter.Amount.ToString();

            builder.refund_reason = parameter.Reason;

            AlipayF2FRefundResult refundResult = serviceClient.tradeRefund(builder);

            RefoundResult finallyResult = new RefoundResult();

            //请在这里加上商户的业务逻辑程序代码
            //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
            switch (refundResult.Status)
            {
            case ResultEnum.SUCCESS:
                finallyResult.Result        = RefoundResult.ResultEnum.SUCCESS;
                finallyResult.ServerMessage = refundResult.response.Body;
                break;

            case ResultEnum.FAILED:
                finallyResult.Result        = RefoundResult.ResultEnum.FAIL;
                finallyResult.ServerMessage = refundResult.response.Body;
                finallyResult.Error         = refundResult.response.SubMsg;
                break;

            case ResultEnum.UNKNOWN:
                finallyResult.Result = RefoundResult.ResultEnum.FAIL;
                if (refundResult.response == null)
                {
                    finallyResult.Error = "配置或网络异常,请检查";
                }
                else
                {
                    finallyResult.Error = "系统异常,请走人工退款流程";
                }
                break;
            }

            return(finallyResult);
        }
Beispiel #6
0
        /// <summary>
        /// 申请退款
        /// </summary>
        /// <param name="out_trade_no">订单编号</param>
        /// <param name="total_fee">订单总金额(单位:元)</param>
        /// <param name="refund_fee">退款金额(单位:元)</param>
        /// <returns></returns>
        public static bool Run(string out_trade_no, string total_fee)
        {
            IAlipayTradeService serviceClient = F2FBiz.CreateClientInstance(
                F2FPayConfig.serverUrl,
                F2FPayConfig.appId,
                F2FPayConfig.merchant_private_key,
                F2FPayConfig.version,
                F2FPayConfig.sign_type,
                F2FPayConfig.alipay_public_key,
                F2FPayConfig.charset);
            var out_request_no = System.DateTime.Now.ToString("yyyyMMddHHmmss") + "0000" + (new Random()).Next(1, 10000).ToString();
            AlipayTradeRefundContentBuilder builder = new AlipayTradeRefundContentBuilder();

            //支付宝交易号与商户网站订单号不能同时为空
            builder.out_trade_no = out_trade_no.Trim();
            //退款请求单号保持唯一性。
            builder.out_request_no = out_request_no;
            //退款金额
            builder.refund_amount = total_fee.Trim();
            builder.refund_reason = "refund reason";
            AlipayF2FRefundResult refundResult = serviceClient.tradeRefund(builder);
            bool   isRefund = false;
            string result   = "";

            //请在这里加上商户的业务逻辑程序代码
            //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
            switch (refundResult.Status)
            {
            case ResultEnum.SUCCESS:
                isRefund = true;
                result   = "退款成功";
                break;

            case ResultEnum.FAILED:
                result = "退款失败," + refundResult.response.SubMsg;
                break;

            case ResultEnum.UNKNOWN:
                if (refundResult.response == null)
                {
                    result = "退款失败,配置或网络异常,请检查";
                }
                else
                {
                    result = "退款失败,系统异常,请走人工退款流程";
                }
                break;
            }
            return(isRefund);
        }
Beispiel #7
0
        public AlipayF2FRefundResult tradeRefund(AlipayTradeRefundContentBuilder builder)
        {
            AlipayF2FRefundResult refundResult = new AlipayF2FRefundResult();

            try
            {
                AlipayTradeRefundRequest refundRequest = new AlipayTradeRefundRequest();
                refundRequest.BizContent = builder.BuildJson();
                refundResult.response    = client.Execute(refundRequest);
                return(refundResult);
            }
            catch
            {
                refundResult.response = null;
                return(refundResult);
            }
        }
Beispiel #8
0
        public Result <AlipayF2FRefundResult> AlipayRefundDsPosOrder(CBDsPosReturnOrder returnOrder)
        {
            Result <AlipayF2FRefundResult> result = new Result <AlipayF2FRefundResult>();

            IAlipayTradeService serviceClient = F2FBiz.CreateClientInstance(Config.serverUrl, Config.appId, Config.merchant_private_key, Config.version,
                                                                            Config.sign_type, Config.alipay_public_key, Config.charset);

            AlipayTradeRefundContentBuilder builder = BuildContent(returnOrder);


            AlipayF2FRefundResult refundResult = serviceClient.tradeRefund(builder);

            //请在这里加上商户的业务逻辑程序代码
            //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
            switch (refundResult.Status)
            {
            case ResultEnum.SUCCESS:
                DoSuccessProcess(refundResult, ref result);
                break;

            case ResultEnum.FAILED:
                DoFailedProcess(refundResult, ref result);
                break;

            case ResultEnum.UNKNOWN:
                if (refundResult.response == null)
                {
                    result.Message = "配置或网络异常,请检查";
                    //result = "配置或网络异常,请检查";
                }
                else
                {
                    result.Message = "系统异常,请走人工退款流程";
                    //result = "系统异常,请走人工退款流程";
                }
                result.Data   = refundResult;
                result.Status = false;
                break;
            }
            return(result);
        }
Beispiel #9
0
        //alipay.trade.refund(统一收单线下交易退款)
        public bool Alipay_Refund(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, string req_id, decimal refund_amt, out string msg)
        {
            try
            {
                IAlipayTradeService sc = F2FBiz.CreateClientInstance(Config.serverUrl, app_id, merchant_private_key, Config.version,
                                                                     Config.sign_type, alipay_public_key, Config.charset);

                AlipayTradeRefundContentBuilder builder = BuildContent(ord_id, req_id, refund_amt);

                AlipayF2FRefundResult refundResult = sc.tradeRefund(builder);

                msg = "";
                if (refundResult.Status == ResultEnum.SUCCESS)
                {
                    return(true);
                }
                else if (refundResult.Status == ResultEnum.FAILED)
                {
                    msg = refundResult.response.Body;
                    return(false);
                }
                else
                {
                    if (refundResult.response == null)
                    {
                        msg = "配置或网络异常,请检查后重试";
                    }
                    else
                    {
                        msg = "系统异常,请走人工退款流程";
                    }
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Server.LogHelper.writeLog("PreCreate ->Alipay_Query()", ex.ToString(), ord_id);
                throw ex;
            }
        }
 /// <summary>
 /// 请添加支付成功后的处理
 /// </summary>
 private void DoSuccessProcess(AlipayF2FRefundResult refundResult)
 {
     //请添加退款成功后的处理
     result = refundResult.response.Body;
 }
 /// <summary>
 /// 请添加支付失败后的处理
 /// </summary>
 private void DoFailedProcess(AlipayF2FRefundResult refundResult)
 {
     //请添加退款失败后的处理
     result = refundResult.response.Body;
 }
Beispiel #12
0
 private void DoFailedProcess(AlipayF2FRefundResult refundResult)
 {
     //请添加退款失败后的处理
 }
Beispiel #13
0
 private void DoSuccessProcess(AlipayF2FRefundResult refundResult)
 {
     //请添加退款成功后的处理
 }