Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                webinfo = new TravelAgent.BLL.WebInfo().loadConfig(Server.MapPath(ConfigurationManager.AppSettings["WebInfoConfig"].ToString()));
                if (webinfo == null)
                {
                    Response.Write("配置信息获取错误!");
                    Response.End();
                }
                //获取当前用户的OpenId,如果可以通过系统获取用户Openid就不用调用该函数
                this.GetUserOpenId();
                LogUtil.WriteLog("数据0" + Request["o"]);
                LogUtil.WriteLog("数据total_fee" + Request["total_fee"]);
                LogUtil.WriteLog("数据subject" + Request["subject"]);
                //设置支付数据
                PayModel model = new PayModel();
                model.OrderSN = Request.QueryString["o"];
                model.TotalFee = int.Parse(Request.QueryString["total_fee"]);
                model.Body = Request.QueryString["subject"];
                model.Attach = ""; //不能有中午
                model.OpenId = this.UserOpenId;

                //跳转到 WeiPay.aspx 页面,请设置函数中WeiPay.aspx的页面地址
                this.Response.Redirect(model.ToString());
            }
        }
Пример #2
0
 //private static readonly TravelAgent.BLL.Links LinkBll = new TravelAgent.BLL.Links();
 protected void Page_Init(object sender, EventArgs e)
 {
     if (webinfo == null)
     {
         webinfo = new TravelAgent.BLL.WebInfo().loadConfig(Server.MapPath(ConfigurationManager.AppSettings["WebInfoConfig"].ToString()));
     }
 }
Пример #3
0
 /// <summary>
 /// 保存配置文件
 /// </summary>
 /// <param name="mode"></param>
 /// <param name="configFilePath"></param>
 /// <returns></returns>
 public TravelAgent.Model.WebInfo saveConifg(TravelAgent.Model.WebInfo mode, string configFilePath)
 {
     lock (lockHelper)
     {
         SerializationHelper.Save(mode, configFilePath);
         //JGK.Dal.Providers.webSetProvider.SetInstance(mode);
     }
     return(mode);
 }
Пример #4
0
        private readonly int textFontSize;      //文字大小

        public UpLoad()
        {
            webinfo           = new TravelAgent.BLL.WebInfo().loadConfig(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["WebInfoConfig"].ToString()));
            filePath          = webinfo.WebFilePath;
            fileType          = webinfo.WebFileType;
            fileSize          = webinfo.WebFileSize;
            isWatermark       = webinfo.IsWatermark;
            waterStatus       = webinfo.WatermarkStatus;
            waterQuality      = webinfo.ImgQuality;
            imgWaterPath      = webinfo.ImgWaterPath;
            waterTransparency = webinfo.ImgWaterTransparency;
            textWater         = webinfo.WaterText;
            textWaterFont     = webinfo.WaterFont;
            textFontSize      = webinfo.FontSize;
        }
Пример #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            webinfo = new TravelAgent.BLL.WebInfo().loadConfig(Server.MapPath(ConfigurationManager.AppSettings["WebInfoConfig"].ToString()));
            if (webinfo == null)
            {
                Response.Write("配置信息获取错误!");
                Response.End();
            }
            //创建ResponseHandler实例
            ResponseHandler resHandler = new ResponseHandler(Context);

            resHandler.setKey(webinfo.Key);

            //判断签名
            try
            {
                string error = "";
                if (resHandler.isWXsign(out error))
                {
                    #region 协议参数=====================================
                    //--------------协议参数--------------------------------------------------------
                    //SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查
                    string return_code = resHandler.getParameter("return_code");
                    //返回信息,如非空,为错误原因签名失败参数格式校验错误
                    string return_msg = resHandler.getParameter("return_msg");
                    //微信分配的公众账号 ID
                    string appid = resHandler.getParameter("appid");

                    //以下字段在 return_code 为 SUCCESS 的时候有返回--------------------------------
                    //微信支付分配的商户号
                    string mch_id = resHandler.getParameter("mch_id");
                    //微信支付分配的终端设备号
                    string device_info = resHandler.getParameter("device_info");
                    //微信分配的公众账号 ID
                    string nonce_str = resHandler.getParameter("nonce_str");
                    //业务结果 SUCCESS/FAIL
                    string result_code = resHandler.getParameter("result_code");
                    //错误代码
                    string err_code = resHandler.getParameter("err_code");
                    //结果信息描述
                    string err_code_des = resHandler.getParameter("err_code_des");

                    //以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回---------------
                    //-------------业务参数---------------------------------------------------------
                    //用户在商户 appid 下的唯一标识
                    string openid = resHandler.getParameter("openid");
                    //用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效
                    string is_subscribe = resHandler.getParameter("is_subscribe");
                    //JSAPI、NATIVE、MICROPAY、APP
                    string trade_type = resHandler.getParameter("trade_type");
                    //银行类型,采用字符串类型的银行标识
                    string bank_type = resHandler.getParameter("bank_type");
                    //订单总金额,单位为分
                    string total_fee = resHandler.getParameter("total_fee");
                    //货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY
                    string fee_type = resHandler.getParameter("fee_type");
                    //微信支付订单号
                    string transaction_id = resHandler.getParameter("transaction_id");
                    //商户系统的订单号,与请求一致。
                    string out_trade_no = resHandler.getParameter("out_trade_no");
                    //商家数据包,原样返回
                    string attach = resHandler.getParameter("attach");
                    //支 付 完 成 时 间 , 格 式 为yyyyMMddhhmmss,如 2009 年12 月27日 9点 10分 10 秒表示为 20091227091010。时区为 GMT+8 beijing。该时间取自微信支付服务器
                    string time_end = resHandler.getParameter("time_end");

                    #endregion
                    //支付成功
                    if (!out_trade_no.Equals("") && return_code.Equals("SUCCESS") && result_code.Equals("SUCCESS"))
                    {
                        LogUtil.WriteLog("Notify 页面  支付成功,支付信息:商家订单号:" + out_trade_no + "、支付金额(分):" + total_fee + "、自定义参数:" + attach);


                        /**
                         *  这里输入用户逻辑操作,比如更新订单的支付状态
                         *
                         * **/
                        string strsql = "update [order] set orderState=" + Convert.ToInt32(TravelAgent.Tool.EnumSummary.OrderState.已付款) + ",payType=" + Convert.ToInt32(TravelAgent.Tool.EnumSummary.PayType.微信支付) + " where ordercode='" + out_trade_no + "'";
                        TravelAgent.Tool.DbHelperSQL.ExecuteSql(strsql);

                        LogUtil.WriteLog("============ 单次支付结束 ===============");
                        Response.Write("success");
                        return;
                    }
                    else
                    {
                        LogUtil.WriteLog("Notify 页面  支付失败,支付信息   total_fee= " + total_fee + "、err_code_des=" + err_code_des + "、result_code=" + result_code);
                    }
                }
                else
                {
                    LogUtil.WriteLog("Notify 页面  isWXsign= false ,错误信息:" + error);
                }
            }
            catch (Exception ee)
            {
                LogUtil.WriteLog("Notify 页面  发送异常错误:" + ee.Message);
            }

            Response.End();
        }
Пример #6
0
 /// <summary>
 ///  保存配置文件
 /// </summary>
 /// <param name="mode"></param>
 /// <param name="configFilePath"></param>
 /// <returns></returns>
 public TravelAgent.Model.WebInfo saveConifg(TravelAgent.Model.WebInfo mode, string configFilePath)
 {
     return(dal.saveConifg(mode, configFilePath));
 }
Пример #7
0
 public mBasePage()
 {
     webinfo = new TravelAgent.BLL.WebInfo().loadConfig(Server.MapPath(ConfigurationManager.AppSettings["WebInfoConfig"].ToString()));
 }
Пример #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            webinfo = new TravelAgent.BLL.WebInfo().loadConfig(Server.MapPath(ConfigurationManager.AppSettings["WebInfoConfig"].ToString()));
            if (webinfo == null)
            {
                Response.Write("配置信息获取错误!");
                Response.End();
            }

            this.BindData();
            LogUtil.WriteLog("============ 单次支付开始 ===============");
            LogUtil.WriteLog(string.Format("传递支付参数:OrderSN={0}、Body={1}、TotalFee={2}、Attach={3}、UserOpenId={4}",
                                           this.OrderSN, this.Body, this.TotalFee, this.Attach, this.UserOpenId));


            #region 支付操作============================


            #region 基本参数===========================
            //时间戳
            TimeStamp = TenpayUtil.getTimestamp();
            //随机字符串
            NonceStr = TenpayUtil.getNoncestr();

            //创建支付应答对象
            var packageReqHandler = new RequestHandler(Context);
            //初始化
            packageReqHandler.init();

            //设置package订单参数  具体参数列表请参考官方pdf文档,请勿随意设置
            packageReqHandler.setParameter("body", this.Body); //商品信息 127字符
            packageReqHandler.setParameter("appid", webinfo.AppID);
            packageReqHandler.setParameter("mch_id", webinfo.Mchid);
            packageReqHandler.setParameter("nonce_str", NonceStr.ToLower());
            packageReqHandler.setParameter("notify_url", webinfo.WebDomain + "/mTravel/weipay/Notify.aspx");
            packageReqHandler.setParameter("openid", this.UserOpenId);
            packageReqHandler.setParameter("out_trade_no", this.OrderSN);                                   //商家订单号
            packageReqHandler.setParameter("spbill_create_ip", Page.Request.UserHostAddress);               //用户的公网ip,不是商户服务器IP
            packageReqHandler.setParameter("total_fee", (Convert.ToInt32(this.TotalFee) * 100).ToString()); //商品金额,以分为单位(money * 100).ToString()
            packageReqHandler.setParameter("trade_type", "JSAPI");
            if (!string.IsNullOrEmpty(this.Attach))
            {
                packageReqHandler.setParameter("attach", this.Attach);//自定义参数 127字符
            }
            #endregion

            #region sign===============================
            Sign = packageReqHandler.CreateMd5Sign("key", webinfo.Key);
            LogUtil.WriteLog("WeiPay 页面  sign:" + Sign);
            #endregion

            #region 获取package包======================
            packageReqHandler.setParameter("sign", Sign);

            string data = packageReqHandler.parseXML();
            LogUtil.WriteLog("WeiPay 页面  package(XML):" + data);

            string prepayXml = HttpUtil.Send(data, "https://api.mch.weixin.qq.com/pay/unifiedorder");
            LogUtil.WriteLog("WeiPay 页面  package(Back_XML):" + prepayXml);

            //获取预支付ID
            var xdoc = new XmlDocument();
            xdoc.LoadXml(prepayXml);
            XmlNode     xn  = xdoc.SelectSingleNode("xml");
            XmlNodeList xnl = xn.ChildNodes;
            if (xnl.Count > 7)
            {
                PrepayId = xnl[7].InnerText;
                Package  = string.Format("prepay_id={0}", PrepayId);
                LogUtil.WriteLog("WeiPay 页面  package:" + Package);
            }
            #endregion

            #region 设置支付参数 输出页面  该部分参数请勿随意修改 ==============
            var paySignReqHandler = new RequestHandler(Context);
            paySignReqHandler.setParameter("appId", webinfo.AppID);
            paySignReqHandler.setParameter("timeStamp", TimeStamp);
            paySignReqHandler.setParameter("nonceStr", NonceStr);
            paySignReqHandler.setParameter("package", Package);
            paySignReqHandler.setParameter("signType", "MD5");
            PaySign = paySignReqHandler.CreateMd5Sign("key", webinfo.Key);

            LogUtil.WriteLog("WeiPay 页面  paySign:" + PaySign);
            #endregion
            #endregion
        }
Пример #9
0
 public BasePage()
 {
     this.Load += new EventHandler(ManagePage_Load);
     webinfo    = new TravelAgent.BLL.WebInfo().loadConfig(Server.MapPath(ConfigurationManager.AppSettings["WebInfoConfig"].ToString()));
 }