Exemplo n.º 1
0
        //alipay.trade.precreate(统一收单线下交易预创建)
        public bool Alipay_PreCreate(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, string ord_name, decimal total_amt
                                     , string partner_id, out string barcode, 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);

                AlipayTradePrecreateContentBuilder builder = BuildPrecreateContent(ord_id, ord_name, total_amt, partner_id);
                string out_trade_no = builder.out_trade_no;

                //如果需要接收扫码支付异步通知,那么请把下面两行注释代替本行。
                //推荐使用轮询撤销机制,不推荐使用异步通知,避免单边账问题发生。
                //AlipayF2FPrecreateResult precreateResult = serviceClient.tradePrecreate(builder);
                string notify_url = Server.Appsetting.ali_notify_url;  //商户接收异步通知的地址
                AlipayF2FPrecreateResult precreateResult = sc.tradePrecreate(builder, notify_url);

                //以下返回结果的处理供参考。
                //payResponse.QrCode即二维码对于的链接
                //将链接用二维码工具生成二维码打印出来,顾客可以用支付宝钱包扫码支付。
                msg     = "";
                barcode = "";
                if (precreateResult.Status == ResultEnum.SUCCESS)
                {
                    barcode = precreateResult.response.QrCode;
                    return(true);
                }
                else if (precreateResult.Status == ResultEnum.FAILED)
                {
                    msg = precreateResult.response.Body;
                    return(false);
                }
                else
                {
                    if (precreateResult.response == null)
                    {
                        msg = "配置或网络异常,请检查后重试";
                    }
                    else
                    {
                        msg = "系统异常,请更新外部订单后重新发起请求";
                    }
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Server.LogHelper.writeLog("PreCreate ->Alipay_PreCreate()", ex.ToString(), ord_id, total_amt.ToString());
                throw ex;
            }
        }
Exemplo n.º 2
0
        //alipay.trade.pay(统一收单线下交易条码支付)
        public bool Alipay_BarcodePay(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, string ord_name, decimal total_amt
                                      , string auth_code, string partner_id, 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);

                AlipayTradePayContentBuilder builder = BuildPayContent(ord_id, ord_name, auth_code, total_amt, partner_id);
                string out_trade_no = builder.out_trade_no;

                AlipayF2FPayResult payResult = sc.tradePay(builder);

                msg = "";
                if (payResult.Status == ResultEnum.SUCCESS)
                {
                    return(true);
                }
                else if (payResult.Status == ResultEnum.FAILED)
                {
                    msg = payResult.response.Body;
                    return(false);
                }
                else
                {
                    if (payResult.response == null)
                    {
                        msg = "配置或网络异常,请检查后重试";
                    }
                    else
                    {
                        msg = "网络异常,请检查网络配置后重试";
                    }
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Server.LogHelper.writeLog("PreCreate ->Alipay_BarcodePay()", ex.ToString(), ord_id, total_amt.ToString());
                throw ex;
            }
        }
Exemplo n.º 3
0
        //alipay.trade.query(统一收单线下交易查询)
        public bool Alipay_Query(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, 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);
                //商户订单号
                string out_trade_no = ord_id;

                //商户网站订单系统中唯一订单号,必填

                AlipayF2FQueryResult queryResult = sc.tradeQuery(out_trade_no);

                msg = "";
                if (queryResult.Status == ResultEnum.SUCCESS)
                {
                    return(true);
                }
                else if (queryResult.Status == ResultEnum.FAILED)
                {
                    msg = queryResult.response.Body;
                    return(false);
                }
                else
                {
                    if (queryResult.response == null)
                    {
                        msg = "配置或网络异常,请检查后重试";
                    }
                    else
                    {
                        msg = "系统异常,请重试";
                    }
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Server.LogHelper.writeLog("PreCreate ->Alipay_Query()", ex.ToString(), ord_id);
                throw ex;
            }
        }
Exemplo n.º 4
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;
            }
        }