Exemple #1
0
        private AlipayTradeRefundContentBuilder BuildContent(CBDsPosReturnOrder returnOrder)
        {
            AlipayTradeRefundContentBuilder builder = new AlipayTradeRefundContentBuilder();

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

            //退款请求单号保持唯一性。
            builder.out_request_no = returnOrder.SerialNumber;

            //退款金额
            builder.refund_amount = returnOrder.TotalMayReturnValue.ToString("C");

            builder.refund_reason = "refund reason";

            return(builder);
        }
Exemple #2
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);
        }