Ejemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SortedDictionary <string, string> sPara = GetRequestGet();

            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Notify aliNotify    = new Notify();
                bool   verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]);

                if (verifyResult)//验证成功
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码

                    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                    //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表

                    //商户订单号
                    string out_trade_no = Request.QueryString["out_trade_no"];
                    //支付宝交易号
                    string trade_no = Request.QueryString["trade_no"];
                    //交易状态
                    string trade_status = Request.QueryString["trade_status"];
                    //更新返回信息到数据库中
                    Entity.DingDan info = DAL.tengxb.dingdan.DingDanEntityGet(out_trade_no);
                    if (info != null)
                    {
                        if (Request.QueryString["trade_status"] == "TRADE_FINISHED" || Request.QueryString["trade_status"] == "TRADE_SUCCESS")
                        {
                            //TRADE_SUCCESS
                            // 交易成功,且可对该交易做操作,如:多级分润、退款等。
                            strResult = "success";
                            //在notifyUrl页面中已经进行账号分配处理了

                            if (DAL.GaoKaoCard.GaoKaoCardCount("DingDanHao = '" + info.DingDanHao + "'") < info.Count)
                            {
                                //分配高考卡,并发送短信
                                FenPeiGaoKaoCard.FenPeiCard(info);
                                //展示卡号
                                DataTable dt = DAL.GaoKaoCard.GaoKaoCardList("DingDanHao = '" + info.DingDanHao + "'");
                                if (dt != null)
                                {
                                    for (int i = 0; i < dt.Rows.Count; i++)
                                    {
                                        strCardList += "<p>账号:" + dt.Rows[i]["KaHao"].ToString() + " &nbsp;&nbsp; 密码:" + dt.Rows[i]["MiMa"].ToString() + "</p>";
                                    }
                                }
                            }
                            else
                            {
                                //展示卡号
                                DataTable dt = DAL.GaoKaoCard.GaoKaoCardList("DingDanHao = '" + info.DingDanHao + "'");
                                if (dt != null)
                                {
                                    for (int i = 0; i < dt.Rows.Count; i++)
                                    {
                                        strCardList += "<p>账号:" + dt.Rows[i]["KaHao"].ToString() + " &nbsp;&nbsp; 密码:" + dt.Rows[i]["MiMa"].ToString() + "</p>";
                                    }
                                }
                            }
                        }
                        else
                        {
                            //付款失败
                            // Basic.SendMobile.SendMobileMsg("15810621454", "付款失败");
                        }
                    }
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                else//验证失败
                {
                    strResult = "fail";
                    Response.Write("fail");
                }
            }
            else
            {
                strResult = "无通知参数";
                // Response.Write("无通知参数");
            }
        }
Ejemplo n.º 2
0
        //交易状态,
        //只是生成订单的话,默认为0
        //返回的状态值,以此对应如下:
        //1.WAIT_BUYER_PAY:1       交易创建,等待买家付款。
        //2.TRADE_CLOSED:2       (1)在指定时间段内未支付时关闭的交易;(2)在交易完成全额退款成功时关闭的交易。
        //3.TRADE_SUCCESS:3    交易成功,且可对该交易做操作,如:多级分润、退款等。
        //4.TRADE_PENDING:4    等待卖家收款(买家付款后,如果卖家账号被冻结)。
        //5.TRADE_FINISHED:5    交易成功且结束,即不可再做任何操作
        protected void Page_Load(object sender, EventArgs e)
        {
            SortedDictionary <string, string> sPara = GetRequestPost();

            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Notify aliNotify    = new Notify();
                bool   verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]);

                if (verifyResult)//验证成功
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码

                    //商户订单号
                    string out_trade_no = Request.Form["out_trade_no"];
                    //支付宝交易号
                    string trade_no = Request.Form["trade_no"];
                    //交易状态
                    string trade_status = Request.Form["trade_status"];

                    //更新返回信息到数据库中
                    Entity.DingDan info = DAL.tengxb.dingdan.DingDanEntityGet(out_trade_no);
                    if (info != null)
                    {
                        //更新数据库中的状态值
                        info.State = 3;
                        switch (Request.Form["trade_status"])
                        {
                        case "WAIT_BUYER_PAY":
                            info.State = 1;
                            break;

                        case "TRADE_CLOSED":
                            info.State = 2;
                            break;

                        case "TRADE_SUCCESS":
                            info.State = 3;
                            break;

                        case "TRADE_PENDING":
                            info.State = 4;
                            break;

                        case "TRADE_FINISHED":
                            info.State = 5;
                            break;

                        default:
                            break;
                        }

                        info.Memo = "支付宝交易号:" + trade_no;
                        DAL.DingDan.DingDanEdit(info);
                    }


                    if (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCESS")
                    {
                        Basic.Email.sendMail("*****@*****.**", "高考报考卡购买付款成功", "订单号:" + info.DingDanHao + "<br />" + info.Body + "<br />联系电话:" + info.CellMobile);
                        Basic.Email.sendMail("*****@*****.**", "高考报考卡购买付款成功", "订单号:" + info.DingDanHao + "<br />" + info.Body + "<br />联系电话:" + info.CellMobile);

                        //TRADE_SUCCESS
                        // 交易成功,且可对该交易做操作,如:多级分润、退款等。
                        if (DAL.GaoKaoCard.GaoKaoCardCount("DingDanHao = '" + info.DingDanHao + "'") < info.Count)
                        {
                            //分配高考卡,并发送短信
                            FenPeiGaoKaoCard.FenPeiCard(info);
                        }
                    }
                    else
                    {
                        //付款失败
                        // Basic.SendMobile.SendMobileMsg("18500525896", "付款失败");
                    }

                    Response.Write("success");  //请不要修改或删除
                }
                else//验证失败
                {
                    Response.Write("fail");
                }
            }
            else
            {
                Response.Write("无通知参数");
            }
        }