コード例 #1
0
        /// <summary>
        /// 设置对应的订单号为支付成功
        /// </summary>
        /// <param name="DB"></param>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public static string OrderSuccess(DataBase DB, string orderId, String Author = "")
        {
            Dictionary <string, string> Dic = DB.SelectValue(ScTool.ORDER, orderId, "ID").RowDic();

            if (!Dic.ContainsKey("ext"))
            {
                return("fail");
            }

            string isSuccess = Dic["isSuccess"];        // 是否已支付成功

            if (isSuccess != null && isSuccess.Contains("True"))
            {
                return("success");                                                  // 已成功则不再操作
            }
            if (!Author.Equals(""))
            {
                string ext = Dic["ext"];                // ext
                if (!ext.Contains("author(" + Author + ")"))
                {
                    return("fail");
                }
            }

            // 设置当前订单为支付成功
            Dictionary <string, string> datas = new Dictionary <string, string>();

            datas.Add("isSuccess", "True");
            string result = DB.UpdateValue(ScTool.ORDER, orderId, datas, "ID");

            // 记录preDB中的Order表信息为支付成功
            if (result.Equals("success"))
            {
                if (Dic.Count > 0 && Dic.ContainsKey("preOrderId"))
                {
                    string preOrderId = Dic["preOrderId"];  // 预下单订单号
                    string machinCode = Dic["machinCode"];  // 机器码
                    string soft       = Dic["soft"];        // 软件名称

                    DataBase preDB = new DataBase(ScTool.DBName("pre"), ScTool.UserName, ScTool.Password);

                    result = OnlineSerial.GenOnlineSerial(machinCode, soft, preDB);
                    OnlineCode.Add(preDB, OnlineCode.TAB, machinCode, soft, Dic["ext"]);     // 记录支付成功的软件信息至数据表中

                    result = Pay.OrderSuccess(preDB, preOrderId);
                }
            }

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 载入后执行参数对应的sql请求
        /// </summary>
        public override void Load(object sender, EventArgs e)
        {
            if (UserType == 0 && param.Equals(""))
            {
                Response.Redirect("../PayFor/UserLogin.aspx");
            }

            DB = new DataBase(ScTool.DBName("pre"), ScTool.UserName, ScTool.Password);

            if (Page.IsPostBack)
            {
                //Timer1.Enabled = true;
                return;
            }

            body1.Visible = false;

            TYPE = Request["TYPE"];
            if (TYPE == null)
            {
                TYPE = "";
            }

            if (param.Contains("TYPE"))
            {
                int index = param.IndexOf("TYPE");
                int start = param.IndexOf("&", index + 4);
                param = param.Substring(start + 1);
            }

            //DB.DeletTable(ScTool.ORDER);
            confirmOrderTab();

            //DB = new DataBase("master", ScTool.UserName, ScTool.Password);
            //DB.DeletDataBase(ScTool.DBName("pre"));
            //DB.DeletDataBase(ScTool.DBName(ScTool.PayTypeAli));
            //DB.DeletDataBase(ScTool.DBName(ScTool.PayTypeWechat));

            if (TYPE.Equals("PreOrder"))            // 生成新的pre订单
            {
                //if (!ContainsAuthorInfo()) return;
                this.Controls.Clear();

                string id = createOrder(param);
                Response.Write(ScTool.Reslut(id));
                return;
            }
            else if (TYPE.Equals("ShowPreOrder"))   // 显示预备下单订单号,对应的二维码待支付页面
            {
                string preOrderId = Request["preOrderId"];

                LabelPreOrderId.Text    = "当前订单号:" + preOrderId;
                LabelPreOrderPrice.Text = getNeedPayMoney(preOrderId);

                if (preOrderId != null && !preOrderId.Equals(""))
                {
                    string data = url + "?" + "TYPE=" + "CreateOrder" + "&" + "preOrderId=" + preOrderId;
                    showQR(data);
                }
                else
                {
                    Response.Write("支付失败!Pay.aspx创建订单失败");
                }
            }
            else if (TYPE.Equals("OrderResult"))    // 查询指定订单支付结果http://60.205.185.168:8002/pages/pay.aspx?TYPE=OrderResult&machinCode=J78Z-A906-E9ST-RING
            {
                this.Controls.Clear();

                string order_param = Request["P"];
                if (order_param == null || order_param.Equals(""))
                {
                    string result = OrderResult(Request["preOrderId"]); // 通过订单号查询支付结果
                    Response.Write(ScTool.Reslut(result));
                }
                else
                {
                    string result = OrderResult_param(order_param);     // 通过订单参数查询支付结果
                    Response.Write(ScTool.Reslut(result));
                }
                return;
            }
            else if (TYPE.Equals("OrderResultX"))
            {
                this.Controls.Clear();

                if (Request["preOrderId"] != null)
                {
                    string result = OrderResult(Request["preOrderId"], false); // 通过订单号查询支付结果
                    Response.Write(ScTool.Reslut(result));
                }
                else
                {
                    string machinCode = Request["machinCode"];
                    string soft       = Request["soft"];

                    string result = OnlineCode.Check(DB, OnlineCode.TAB, machinCode, soft);     // 查询指定的机器码对应订单是否已支付
                    Response.Write(ScTool.Reslut(result));
                }
                return;
            }
            else if (TYPE.Equals("CreateOrder"))    // 使用预下单信息,创建正式订单
            {
                string preOrderId = Request["preOrderId"];
                if (preOrderId != null && !preOrderId.Equals(""))
                {
                    Dictionary <string, string> row = DB.SelectValue(ScTool.ORDER, preOrderId, "ID").RowDic();
                    if (row.Count > 0 && row.ContainsKey("param"))
                    {
                        string oparam    = row["param"];
                        string isSuccess = row["isSuccess"].ToLower();

                        if (isSuccess.Equals("true"))
                        {
                            Response.Write(ScTool.Alert("订单" + preOrderId + "已支付成功!"));
                        }
                        else
                        {
                            // 获取客户端类型
                            string agent   = Request.Params.Get("HTTP_USER_AGENT");
                            string payType = ScTool.payType(agent);

                            // 创建订单时,指定类型
                            if (payType.Equals(""))
                            {
                                string payTypeParam = Request["PayType"];
                                if (payTypeParam != null && (payTypeParam.Equals("Ali") || payTypeParam.Equals("Wechat")))
                                {
                                    payType = payTypeParam;
                                }
                            }

                            //param = HttpUtility.UrlDecode(param);
                            //Response.Redirect("Order.aspx?" + "PayType=" + payType + "&" + param);

                            Order.StaticParam = "PayType=" + payType + "&" + oparam + "&preOrderId=" + preOrderId;
                            Server.Transfer("Order.aspx");
                        }
                    }
                    else
                    {
                        Response.Write(ScTool.Alert("订单" + preOrderId + "不存在!请重新下单"));
                    }
                }
            }
            else
            {
                if (!param.Equals(""))
                {
                    //if (!ContainsAuthorInfo()) return;

                    //param = HttpUtility.UrlEncode(param);
                    string preOrderId = createOrder(param);
                    LabelPreOrderId.Text = "当前订单号:" + preOrderId;

                    string needMoney = Request["money"];
                    if (needMoney != null)
                    {
                        LabelPreOrderPrice.Text = "待支付金额:" + needMoney + " 元";
                    }

                    if (!preOrderId.Equals(""))
                    {
                        string data = url + "?" + "TYPE=" + "CreateOrder" + "&" + "preOrderId=" + preOrderId;
                        //Response.Redirect("QRTool.aspx?" + data);

                        //QRTool.StaticParam = data;
                        //Server.Transfer("QRTool.aspx");

                        showQR(data);
                    }
                    else
                    {
                        Response.Write("支付失败!Pay.aspx创建订单失败");
                    }
                }
                else
                {
                    if (UserType == 2)
                    {
                        ScTool.showTable(this.Controls, DB, ScTool.ORDER);
                    }
                    else if (UserType == 1)
                    {
                        ScTool.showTable(this.Controls, DB, ScTool.ORDER, "where param like '%" + "author(" + UserAccount + ")" + "%' ");
                    }
                    NoteInfo();
                }
            }
        }