Esempio n. 1
0
        //static void Main(string[] args)
        //{
        //    #region
        //    //BankAccount account = new BankAccount();//创建银行账号
        //    //Command commandIn = new MoneyInCommand(account,500);//创建一个存款500的命令
        //    //Invoker invoker = new Invoker();// 创建一个调度者

        //    //invoker.SetCommand(commandIn);//调度一个 存款 命令
        //    //invoker.ExecuteCommand();//执行刚调度的命令

        //    //Command commandIn2 = new MoneyInCommand(account,500);//创建一个 再次 存入 500元 的命令
        //    //invoker.SetCommand(commandIn2);//调度这个 又存入500元的 命令
        //    //invoker.ExecuteCommand();//执行刚调度的命令

        //    //Command commandOut = new MoneyOutCommand(account, 300);//创建一个 取款 300元 的命令
        //    //invoker.SetCommand(commandOut);//调度一个 取款命令
        //    //invoker.ExecuteCommand();//执行刚调度的命令

        //    //Command commandTransferIn = new TransferInCommand(account,8000);//创建一个 转入 8000元 的命令
        //    //invoker.SetCommand(commandTransferIn);//调度这个 转入命令
        //    //invoker.ExecuteCommand();//执行刚调度的命令

        //    //Command commandTransferOut = new TransferOutCommand(account,1500);//穿件一个 转出 1500元 的命令
        //    //invoker.SetCommand(commandTransferOut);//调度这个 转出命令
        //    //invoker.ExecuteCommand();//执行刚调度的命令

        //    ////AlipayAccount alipayAccount = new AlipayAccount();
        //    ////Command alipayIn = new AlipayAccountMoneyInCommand(alipayAccount, 8888);
        //    ////AlipayUser alipayUser = new AlipayUser();

        //    ////alipayUser.SetCommand(alipayIn);
        //    ////alipayUser.ExecuteCommand();

        //    //AlipayAccount alipayAccount = new AlipayAccount();
        //    //Command alipayIn = new AlipayAccountMoneyInCommand(alipayAccount, 8888);
        //    //Invoker alipayUser = new Invoker();

        //    //alipayUser.SetCommand(alipayIn);
        //    //alipayUser.ExecuteCommand();

        //    //Command alipayAccountTransferInCommand = new AlipayAccountTransferInCommand(alipayAccount ,5000);
        //    //alipayUser.SetCommand(alipayAccountTransferInCommand);
        //    //alipayUser.ExecuteCommand();
        //    #endregion

        //    FinancialInstitution financialInstitution = new Alipay();//金融机构类型:支付宝
        //    ConcreteMoneyInCommand command
        //        = new ConcreteMoneyInCommand(financialInstitution, 1000);
        //    Invoker invoker = new Invoker();
        //    invoker.SetCommand(command);//装载命令
        //    invoker.ExecuteCommand();//执行命令


        //    financialInstitution = new ICBC();//金融机构类型:支付宝
        //    command
        //        = new ConcreteMoneyInCommand(financialInstitution, 5000);
        //    //Invoker invoker = new Invoker();
        //    invoker.SetCommand(command);//装载命令
        //    invoker.ExecuteCommand();//执行命令

        //    Console.Read();

        //}

        #endregion

        static void Main(string[] args)
        {
            FinancialInstitution financialInstitution; //抽象一个金融机构类型
            Invoker invoker = new Invoker();           //抽象一个App
            Command moneyInCommand;                    //抽象一个存钱指令
            Command transferInCommand;                 //抽象一个转入指令


            financialInstitution = new Alipay();                                           //new一个金融机构类型:支付宝
            moneyInCommand       = new ConcreteMoneyInCommand(financialInstitution, 1000); //new一个存钱指令
            invoker.SetCommand(moneyInCommand);                                            //装载存钱命令
            invoker.ExecuteCommand();                                                      //执行存钱命令

            transferInCommand = new ConcreteTransferInCommand(financialInstitution, 888);  //new一个转入指令
            invoker.SetCommand(transferInCommand);                                         //装载转入指令
            invoker.ExecuteCommand();                                                      //执行转入指令


            financialInstitution = new ICBC();//new一个金融机构类型:工商银行
            moneyInCommand       = new ConcreteMoneyInCommand(financialInstitution, 5000);

            invoker.SetCommand(moneyInCommand); //装载命令
            invoker.ExecuteCommand();           //执行命令

            Console.Read();

            /*
             * 白天呢 继续在
             * ConcreteCommand(具体命令)中扩展出
             * ConcreteMoneyOutCommand.cs
             * ConcreteTransferOutCommand.cs
             * 并在客户端中 调试 实现
             * 上传到SVN中,终于算是真正的消化吸收命令模式了
             * 以后有时间,把以前学习的抽象命令Command为何不行的分析出来,融会贯通
             * 姜彦20180302 00:53
             *
             *  中国建设银行——CCB
             *  中国农业银行——ABC
             *  中国工商银行——ICBC
             *  中国银行——BOC
             *  中国民生银行——CMBC
             *  招商银行 ——CMB
             *  兴业银行 ——CIB
             *  交通银行——BCM
             *  中国光大银行——CEB
             *  广东发展银行——GDB
             *
             */
        }
Esempio n. 2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Request.Form["notifyData"] != null)
     {
         try
         {
             ICBC icbcInfo = new ICBC();
             icbcInfo.TranData   = Request.Form["notifyData"];
             icbcInfo.MerSignMsg = Request.Form["signMsg"].ToString();
             icbcInfo            = CBCPayOnline.GetCheckReturnInfo(icbcInfo);
             //自定义返回的变量
             //string myOrderid = Encrypt.Decode(Request.Form["merVAR"].ToString());
             if (icbcInfo.IsCheck)
             {
                 DataSet      myds      = new DataSet();
                 StringReader strReader = new StringReader(icbcInfo.TranData);
                 myds.ReadXml(strReader);
                 FileStream   fs = new FileStream("D:\\cc.txt", FileMode.Append);
                 StreamWriter sw = new StreamWriter(fs, Encoding.Default);
                 sw.Write(ToJson(myds));
                 sw.Close();
                 fs.Close();
                 DataTable mytable = new DataTable();
                 mytable = myds.Tables["bank"];
                 string payDate = myds.Tables["orderInfo"].Rows[0]["orderDate"].ToString().Trim();
                 string userNum = myds.Tables["custom"].Rows[0]["UserNum"].ToString().Trim();//联名客户在商户的会员号
                 userNum += "," + myds.Tables["bank"].Rows[0]["TranBatchNo"].ToString().Trim();
                 string amount  = myds.Tables["orderInfo"].Rows[0]["amount"].ToString().Trim();
                 string orderid = myds.Tables["orderInfo"].Rows[0]["orderid"].ToString().Trim();
                 if (null != mytable && mytable.Rows.Count > 0)
                 {
                     if (mytable.Rows[0]["tranStat"].ToString().Trim() == "1")
                     {
                         WebBLL.UpdatePayOrder(true, true, orderid, payDate, userNum, amount);
                     }
                 }
             }
         }
         catch (Exception ex)
         {
         }
     }
 }
        /// <summary>
        /// 获取工商银行验证信息
        /// </summary>
        /// <param name="argIcbc"></param>
        /// <returns></returns>
        public static ICBC GetCheckReturnInfo(ICBC argIcbc)
        {
            string  strMerSignMsg = string.Empty;
            B2CUtil icbcObj       = new B2CUtil();

            if (icbcObj.init(strCertFN, strCertFNM, strKeyFN, strKey) == 0)
            {
                argIcbc.TranData = Common.Decode(argIcbc.TranData);
                //判断验证银行签名是否成功
                if (icbcObj.verifySignC(argIcbc.TranData, argIcbc.TranData.Length, argIcbc.MerSignMsg, argIcbc.MerSignMsg.Length) == 0)
                {
                    argIcbc.IsCheck = true;
                }
                else
                {
                    argIcbc.IsCheck = true;
                }
            }
            else
            {
                argIcbc.IsCheck = false;
            }
            return(argIcbc);
        }
        //商户证书 HttpContext.Current.Server.MapPath("~/..");

        /// <summary>
        /// 获取工商银行验证信息
        /// </summary>
        /// <param name="argIcbc"></param>
        /// <returns></returns>
        public static ICBC GetCheckInfo(ICBC argIcbc)
        {
            string  strMerSignMsg = string.Empty;
            B2CUtil icbcObj       = new B2CUtil();
            int     jg            = icbcObj.init(strCertFN, strCertFNM, strKeyFN, strKey);

            if (jg == 0)
            {
                argIcbc.MerSignMsg = icbcObj.signC(argIcbc.TranData, argIcbc.TranData.Length);
                if (argIcbc.MerSignMsg == "")
                {
                    int returnCode = icbcObj.getRC();
                    //("错误编码:" + returnCode + ",签名错误");
                }
                argIcbc.MerCert = icbcObj.getCert(1);
                byte[] bytes = Encoding.Default.GetBytes(argIcbc.TranData);
                argIcbc.TranData = Convert.ToBase64String(bytes);
            }
            else
            {
                //(jg.ToString() + ",证书错误或私钥错误编码");
            }
            return(argIcbc);
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            #region
            //BankAccount account = new BankAccount();//创建银行账号
            //Command commandIn = new MoneyInCommand(account,500);//创建一个存款500的命令
            //Invoker invoker = new Invoker();// 创建一个调度者

            //invoker.SetCommand(commandIn);//调度一个 存款 命令
            //invoker.ExecuteCommand();//执行刚调度的命令

            //Command commandIn2 = new MoneyInCommand(account,500);//创建一个 再次 存入 500元 的命令
            //invoker.SetCommand(commandIn2);//调度这个 又存入500元的 命令
            //invoker.ExecuteCommand();//执行刚调度的命令

            //Command commandOut = new MoneyOutCommand(account, 300);//创建一个 取款 300元 的命令
            //invoker.SetCommand(commandOut);//调度一个 取款命令
            //invoker.ExecuteCommand();//执行刚调度的命令

            //Command commandTransferIn = new TransferInCommand(account,8000);//创建一个 转入 8000元 的命令
            //invoker.SetCommand(commandTransferIn);//调度这个 转入命令
            //invoker.ExecuteCommand();//执行刚调度的命令

            //Command commandTransferOut = new TransferOutCommand(account,1500);//穿件一个 转出 1500元 的命令
            //invoker.SetCommand(commandTransferOut);//调度这个 转出命令
            //invoker.ExecuteCommand();//执行刚调度的命令

            ////AlipayAccount alipayAccount = new AlipayAccount();
            ////Command alipayIn = new AlipayAccountMoneyInCommand(alipayAccount, 8888);
            ////AlipayUser alipayUser = new AlipayUser();

            ////alipayUser.SetCommand(alipayIn);
            ////alipayUser.ExecuteCommand();

            //AlipayAccount alipayAccount = new AlipayAccount();
            //Command alipayIn = new AlipayAccountMoneyInCommand(alipayAccount, 8888);
            //Invoker alipayUser = new Invoker();

            //alipayUser.SetCommand(alipayIn);
            //alipayUser.ExecuteCommand();

            //Command alipayAccountTransferInCommand = new AlipayAccountTransferInCommand(alipayAccount ,5000);
            //alipayUser.SetCommand(alipayAccountTransferInCommand);
            //alipayUser.ExecuteCommand();
            #endregion

            FinancialInstitution financialInstitution = new Alipay();//金融机构类型:支付宝
            ConcreteFinancialInstitutionCommand command
                = new ConcreteFinancialInstitutionCommand(financialInstitution, 1000);
            Invoker invoker = new Invoker();
            invoker.SetCommand(command); //装载命令
            invoker.ExecuteCommand();    //执行命令


            financialInstitution = new ICBC();//金融机构类型:支付宝
            command
                = new ConcreteFinancialInstitutionCommand(financialInstitution, 5000);
            //Invoker invoker = new Invoker();
            invoker.SetCommand(command); //装载命令
            invoker.ExecuteCommand();    //执行命令

            Console.Read();
        }