protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Request.ContentEncoding = System.Text.Encoding.GetEncoding(QuickPayConf.charset);
            String[] resArr = new String[QuickPayConf.notifyVo.Length];
            for (int i = 0; i < QuickPayConf.notifyVo.Length; i++)
            {
                resArr[i] = Request.Params[QuickPayConf.notifyVo[i]];
            }
            String signature  = Request.Params[QuickPayConf.signature];
            String signMethod = Request.Params[QuickPayConf.signMethod];

            Response.ContentType     = "text/html;charset=" + QuickPayConf.charset;
            Response.ContentEncoding = System.Text.Encoding.GetEncoding(QuickPayConf.charset);

            try
            {
                bool          signatureCheck = new QuickPayUtils().checkSign(resArr, signMethod, signature);
                StringBuilder sb             = new StringBuilder();
                //sb.Append("签名是否正确:" + signatureCheck);
                bool success = resArr[10] == "00";
                if (success)
                {
                    string moneyz = resArr[13];

                    lab_OrderNo.Text = resArr[8];                                       //资源交易号
                    lab_Point.Text   = Convert.ToString(Convert.ToInt32(moneyz) / 100); //实际支付金额
                    lab_aliNo.Text   = resArr[9];                                       //外部交易号

                    //先充值 后消费
                    string loginname = this.Page.User.Identity.Name;

                    ////业务逻辑处理

                    Tz888.BLL.Pay1.PayOrder bbl = new Tz888.BLL.Pay1.PayOrder();
                    bbl.PaySuccessQuick(resArr[8], loginname, Convert.ToString(Convert.ToInt32(6000) / 100));
                    bbl.AddLmOrder(resArr[8], loginname, Convert.ToString(Convert.ToInt32(resArr[13]) / 100), "1");
                }

                else
                {
                    sb.Append("<br>失败原因:" + resArr[11]);
                    Response.Write(sb.ToString());
                }
                Response.Write(sb.ToString());
            }
            catch (Exception) { }
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 向银联发送查询请求
    /// </summary>
    /// <param name="transType"></param>
    /// <param name="orderNumber"></param>
    /// <param name="orderTime"></param>
    /// <returns></returns>
    public string query(string transType, string orderNumber, string orderTime)
    {
        string[] valueVo = new string[] {
            QuickPayConf.version,                                      //协议版本
            QuickPayConf.charset,                                      //字符编码
            transType,                                                 //交易类型
            QuickPayConf.merCode,                                      //商户代码
            orderNumber,                                               //订单号
            orderTime,                                                 //交易时间
            "{cardNumber=6212341111111111111&phoneNumber=13888888888}" //保留域
        };
        QuickPayUtils quickPayUtils = new QuickPayUtils();

        return(quickPayUtils.doPostQueryCmd(QuickPayConf.queryUrl, new QuickPayUtils().createBackStr(valueVo, QuickPayConf.queryVo)));
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 查询交易入口
    /// </summary>
    /// <param name="transType"></param>
    /// <param name="orderNumber"></param>
    /// <param name="orderTime"></param>
    public void queryTrans(string transType, string orderNumber, string orderTime)
    {
        string res = query(transType, orderNumber, orderTime);

        if (res != null && res != "")
        {
            string[] arr = new QuickPayUtils().getResArr(res);
            if (checkSecurity(arr)) //验证签名
            {
                merBusiness(arr);   //商户业务逻辑
            }
        }
        else
        {
            System.Console.WriteLine("报文格式为空");
        }
    }
Ejemplo n.º 4
0
    //验证签名
    public bool checkSecurity(string[] arr)
    {
        //验证签名
        int checkedRes = new QuickPayUtils().checkSecurity(arr);

        if (checkedRes == 1)
        {
            return(true);
        }
        else if (checkedRes == 0)
        {
            System.Console.WriteLine("验证签名失败");
            return(false);
        }
        else if (checkedRes == 2)
        {
            System.Console.WriteLine("报文格式错误");
            return(false);
        }
        return(false);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Request.ContentEncoding = System.Text.Encoding.GetEncoding(QuickPayConf.charset);
            String[] resArr = new String[QuickPayConf.notifyVo.Length];
            for (int i = 0; i < QuickPayConf.notifyVo.Length; i++)
            {
                resArr[i] = Request.Params[QuickPayConf.notifyVo[i]];
            }
            String signature  = Request.Params[QuickPayConf.signature];
            String signMethod = Request.Params[QuickPayConf.signMethod];

            Response.ContentType     = "text/html;charset=" + QuickPayConf.charset;
            Response.ContentEncoding = System.Text.Encoding.GetEncoding(QuickPayConf.charset);

            try
            {
                bool          signatureCheck = new QuickPayUtils().checkSign(resArr, signMethod, signature);
                StringBuilder sb             = new StringBuilder();
                //sb.Append("签名是否正确:" + signatureCheck);
                bool success = resArr[10] == "00";
                if (success)
                {
                    string moneyz = resArr[13];

                    lab_OrderNo.Text = resArr[8];                                       //资源交易号
                    lab_Point.Text   = Convert.ToString(Convert.ToInt32(moneyz) / 100); //实际支付金额
                    lab_aliNo.Text   = resArr[9];                                       //外部交易号

                    //先充值 后消费
                    string loginname = this.Page.User.Identity.Name;

                    ////业务逻辑处理

                    Tz888.BLL.Pay1.PayOrder bbl = new Tz888.BLL.Pay1.PayOrder();
                    bool quick = bbl.PaySuccessQuick(resArr[8], loginname, Convert.ToString(Convert.ToInt32(resArr[13]) / 100));
                    if (quick)
                    {
                        bool           lm     = bbl.AddLmOrder(resArr[8], loginname, Convert.ToString(Convert.ToInt32(resArr[13]) / 100), "1");
                        Tz888.BLL.Conn dal    = new Tz888.BLL.Conn();
                        DataTable      dt     = new DataTable();
                        DataTable      dttype = new DataTable();


                        dt = dal.GetList("ConsumeRecviw", "*", "ID", 1, 1, 0, 1, "OrderNo=" + resArr[8].ToString().Trim() + "");
                        if (dt.Rows.Count > 0)
                        {
                            lblTitle.Text     = "<a target='_blank' href='" + DomainName.SiteDomain() + "/" + dt.Rows[0]["htmlfile"].ToString() + "'>" + dt.Rows[0]["SourceType"].ToString() + "</a>";
                            lblOrderDate.Text = dt.Rows[0]["ConsumeTime"].ToString();

                            lblStatus.Text  = "已付款";
                            lblPayType.Text = Tz888.Common.Common.GetPayType(dt.Rows[0]["payType"].ToString());
                        }
                    }
                }

                else
                {
                    sb.Append("<br>失败原因:" + resArr[11]);
                    Response.Write(sb.ToString());
                }
                Response.Write(sb.ToString());
            }
            catch (Exception) { }
        }
    }
Ejemplo n.º 6
0
    public void ProcessRequestList(string url, string shopName, string OrderNo, string money, string UserName)
    {
        //商户需要组装如下对象的数据
        string[] valueVo = new string[] {
            QuickPayConf.version,                        //协议版本
            QuickPayConf.charset,                        //字符编码
            "01",                                        //交易类型
            "",                                          // 原始交易流水号
            QuickPayConf.merCode,                        // 商户代码
            QuickPayConf.merName,                        // 商户简称
            "",                                          // 收单机构代码
            "",                                          // 商户类别
            url,                                         //商品URL
            shopName,                                    //商品名称

            "8000",                                      //商品单价 单位:分
            "1",                                         //商品数量
            "0",                                         //折扣 单位:分

            "1000",                                      //运费 单位:分
            OrderNo,                                     //DateTime.Now.ToString("yyyyMMddHHmmss")+(++i),///订单号(需要商户自己生成)
            money,                                       //交易金额 单位:分
            "156",                                       //交易币种
            DateTime.Now.ToString("yyyyMMddHHmmss"),     //交易时间

            HttpContext.Current.Request.UserHostAddress, //用户IP
            UserName,                                    //用户真实姓名
            "",                                          //默认支付方式
            "",                                          //默认银行编号
            "120000",                                    //交易超时时间

            //"http://localhost:52306/Topfo_Member/PayManage/QuickPay/QuickPayResSample.aspx",// 前台回调商户URL
            //"http://localhost:52306/Topfo_Member/PayManage/QuickPay/QuickPayResSample.aspx",// 后台回调商户URL

            "http://member.topfo.com/PayManage/QuickPay/QuickPayList.aspx",         // 前台回调商户URL
            "http://member.topfo.com/PayManage/QuickPay/QuickPayList1.aspx",        // 后台回调商户URL
            "{cardNumber=6212341111111111111&phoneNumber=13888888888}"              // 商户保留域
        };


        /*
         * 说明:以下代码直接返回跳转到银联在线支付页面字符串
         *  new QuickPayUtils().createPayHtml(valueVo)
         */
        string html = new QuickPayUtils().createPayHtml(valueVo);//跳转到银联页面支付

        /*
         * 说明:以下代码直接返回跳转到银行支付页面字符串 目前:支持工行(ICBC),农行(ABC),中行(BOC),建行(CCB),招行(CMB),广发(GDB),浦发(SPDB)
         *  new QuickPayUtils().createPayHtml(valueVo, "CCB")
         */
        ///String html = new QuickPayUtils().createPayHtml(valueVo, "CCB");//直接跳转到网银页面支付      HttpContext.Current.Response.Write
        ///HttpContext.Current.Response.ContentType
        HttpContext.Current.Response.ContentType     = "text/html;charset=" + QuickPayConf.charset;
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding(QuickPayConf.charset);
        try
        {
            HttpContext.Current.Response.Write(html);
        }
        catch (Exception)
        {
        }
    }