コード例 #1
0
        public string PayTest(EAliPayApplication app, EStoreInfo store, out AliPayResult status)
        {
            IAopClient aliyapClient = new DefaultAopClient("https://openapi.alipay.com/gateway.do", app.AppId,
                                                           app.Merchant_Private_Key, "json", "1.0", "RSA2", app.Merchant_Public_key, "GBK", false);


            _handler = new F2FPayHandler();
            EUserInfo ui = new EUserInfo();

            ui.Name = "Check Store";
            AlipayTradePrecreateResponse builder = _handler.BuildNew(app, store, ui, "1.00");

            if (builder.Code == "10000")
            {
                status = AliPayResult.SUCCESS;
            }
            else
            {
                status = AliPayResult.FAILED;
            }
            return(builder.Code);
        }
コード例 #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var type   = Request.RequestType.ToUpper();
        var result = new AliPayResult()
        {
            Status = "FAILED",
            Msg    = "",
            Body   = ""
        };

        if (type.Equals("POST"))
        {
            try
            {
                var requestStr = ReadStream(Request.InputStream);
                var logMsg     = bool.Parse(ConfigurationManager.AppSettings["LogMsg"].ToString());

                if (logMsg)
                {
                    Logger.Log(requestStr);
                }

                var turnOn = bool.Parse(ConfigurationManager.AppSettings["AllowPay"].ToString());
                if (turnOn)
                {
                    if (Config.WapAccounts.Count > 0)
                    {
                        // 外部订单号,商户网站订单系统中唯一的订单号
                        string out_trade_no = Request.Form["out_trade_no"];

                        // 订单名称
                        string subject = Request.Form["subject"];

                        // 付款金额
                        string total_amout = Request.Form["total_amout"];

                        // 商品描述
                        string body = Request.Form["body"];

                        // 支付中途退出返回商户网站地址
                        string quit_url = Request.Form["quit_url"];

                        // 支付成功回调商户地址
                        string notify_url = Request.Form["notify_url"];

                        string key = Request.Form["key"];

                        var msg = AddNewOrder(out_trade_no, total_amout, subject, body, key);

                        if (string.IsNullOrEmpty(msg))
                        {
                            var aliAccount          = Config.WapAccounts[0];
                            var alipayPublicKey     = string.Format(Config.alipay_public_key, aliAccount.AppName);
                            var alipayPrivateKey    = string.Format(Config.merchant_private_key, aliAccount.AppName);
                            DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, aliAccount.AppId, alipayPrivateKey, "json", "1.0", Config.sign_type, alipayPublicKey, Config.charset, true);

                            // 组装业务参数model
                            AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
                            model.Body        = body;
                            model.Subject     = subject;
                            model.TotalAmount = total_amout;
                            model.OutTradeNo  = out_trade_no;
                            model.ProductCode = "QUICK_WAP_WAY";
                            model.QuitUrl     = quit_url;

                            AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
                            // 设置支付完成同步回调地址
                            // request.SetReturnUrl("");
                            // 设置支付完成异步通知接收地址
                            request.SetNotifyUrl("http://139.196.211.10/payapi/Notify_url.aspx");
                            // 将业务model载入到request
                            request.SetBizModel(model);

                            AlipayTradeWapPayResponse response = client.pageExecute(request, null, "post");

                            result.Body   = response.Body;
                            result.Status = "SUCCESS";
                        }
                        else
                        {
                            result.Msg = msg;
                        }
                    }
                    else
                    {
                        result.Msg = "无可用通道...";
                    }
                }
                else
                {
                    result.Msg = "通道维护中...";
                }
            }
            catch (Exception ex)
            {
                Logger.Log("Exception:" + ex.ToString());
                result.Msg = "请求支付宝服务遇到异常,请联系客服!";
            }
        }
        else
        {
            result.Msg = "请发送POST请求";
        }

        Response.ContentType = "application/json; charset=utf-8";
        Response.Write(JsonConvert.SerializeObject(result));
    }
コード例 #3
0
        public string PartPayQR(EAliPayApplication app, EUserInfo AgentUi, EStoreInfo storeInfo, string TotalAmount, out AliPayResult status)
        {
            string result = "";

            /*
             * IAlipayTradeService serviceClient = F2FBiz.CreateClientInstance(AliPayConfig.serverUrl, AliPayConfig.appId, AliPayConfig.merchant_private_key, AliPayConfig.version,
             *             AliPayConfig.sign_type, AliPayConfig.alipay_public_key, AliPayConfig.charset);
             */
            IAopClient aliyapClient = new DefaultAopClient("https://openapi.alipay.com/gateway.do", app.AppId,
                                                           app.Merchant_Private_Key, "json", "1.0", "RSA2", app.Merchant_Public_key, "GBK", false);


            _handler = new F2FPayHandler();

            AlipayTradePrecreateResponse builder = _handler.BuildNew(app, storeInfo, AgentUi, TotalAmount);

            if (builder.Code == "10000")
            {
                result = _handler.CreateF2FQR(builder.QrCode, true);

                status = AliPayResult.SUCCESS;
            }
            else
            {
                if (builder.Code == "20001")
                {
                    status = AliPayResult.AUTHERROR;
                }
                else
                {
                    result = "[Error Message]" + builder.Msg + "[Sub Msg]" + builder.SubMsg;
                    status = AliPayResult.FAILED;
                }
            }


            return(result);
        }