コード例 #1
0
        protected override void OnSucc()
        {
            //54域
            CommonData.Amount = double.Parse(RecvPackage.GetString(54)) / 100;
            //48域
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());
            QueryTraceNo = handler.GetStringValue("BF05");
            QueryCount   = handler.GetStringValue("BF06");
            QueryContent = handler.GetStringValue("FF48");
        }
コード例 #2
0
        protected override void OnSucc()
        {
            //37域 系统参考号
            PayEntity.PayReferenceNo = RecvPackage.GetString(37);
            //38域
            PayEntity.RecvField38 = RecvPackage.ExistValue(38) ? RecvPackage.GetString(38) : "";
            //55域
            PayEntity.RecvField55 = RecvPackage.ExistValue(55) ? RecvPackage.GetArrayData(55) : new byte[0];
            //48域
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());
            PayEntity.PayFlowNo = handler.GetStringValue("BF05");
        }
コード例 #3
0
        protected override void OnSucc()
        {
            //48域
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());

            PayEntity.TPQueryTraceNo = handler.GetStringValue("BF05");
            PayEntity.TPUserName     = handler.GetStringValue("1F1B");
            PayEntity.TPUserID       = handler.GetStringValue("1F2B");
            PayEntity.TPPrinAmount   = double.Parse(handler.GetStringValue("1F3B")) / 100;
            PayEntity.TPFeeAmount    = double.Parse(handler.GetStringValue("1F4B")) / 100;
            PayEntity.TPPayAmount    = double.Parse(handler.GetStringValue("1F5B")) / 100;
        }
コード例 #4
0
        private byte[] PacketField48()
        {
            string field48 = "C0v22901510000" + UserID.PadLeft(40, ' ') + "000000" + "2";

            byte[]     tmp     = Encoding.Default.GetBytes(field48);
            TLVHandler handler = new TLVHandler();

            handler.AddTag("BF12", SelectRecordInfo[0]);
            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);
            return(result);
        }
コード例 #5
0
        private void WaterOnSucc()
        {
            //48域
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());

            PayEntity.QueryTraceNo     = handler.GetStringValue("BF05");
            PayEntity.UserName         = handler.GetStringValue("1F1B");
            PayEntity.UserAddress      = handler.GetStringValue("1F2B");
            PayEntity.QueryAmount      = double.Parse(handler.GetStringValue("1F3B")) / 100;
            PayEntity.WaterFee         = double.Parse(handler.GetStringValue("1F4B")) / 100;
            PayEntity.WaterTotalAmount = double.Parse(handler.GetStringValue("1F5B")) / 100;
        }
コード例 #6
0
        private void TVOnSucc()
        {
            //48域
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());

            PayEntity.QueryTraceNo = handler.GetStringValue("BF05");
            PayEntity.UserName     = handler.GetStringValue("1F1B");
            PayEntity.QueryAmount  = double.Parse(handler.GetStringValue("1F2B")) / 100;
            PayEntity.QueryDateEnd = handler.GetStringValue("1F3B");
            PayEntity.Price1       = double.Parse(handler.GetStringValue("1F4B")) / 100;
            PayEntity.Price2       = double.Parse(handler.GetStringValue("1F5B")) / 100;
            PayEntity.PriceInfo    = handler.GetStringValue("1F6B");
        }
コード例 #7
0
        private byte[] PacketField48()
        {
            string temp = "B0V2560265200000" + PayEntity.PowerCardNo.PadRight(50, ' ') + "000000";

            byte[]     tmp     = Encoding.Default.GetBytes(temp);
            TLVHandler handler = new TLVHandler();

            handler.AddTag("1F50", "0004");

            if (m_process == 1)
            {
                handler.AddTag("FF28", GetMerchantNo());
                handler.AddTag("FF29", GetTerminalNo());
                handler.AddTag("1F3A", PayEntity.PowerCardData.EF1);
                handler.AddTag("1F4A", PayEntity.PowerCardData.EF2);
                handler.AddTag("1F5A", PayEntity.PowerCardData.EF5);
            }
            else if (m_process == 2)
            {
                handler.AddTag("BF05", PayEntity.ConfirmTraceNo);
                //handler.AddTag("1F4A", PayEntity.PowerCardData.EF5);
            }
            handler.AddTag("BF15", PayEntity.PayFlowNo);
            handler.AddTag("FF01", m_process.ToString());
            handler.AddTag("1F1A", PayEntity.PowerBusiness.ToString());
            handler.AddTag("1F2A", PayEntity.CityPowerNo);


            //handler.AddTag("FF54", PayEntity.EleFeeNum);
            //handler.AddTag("FF55", PayEntity.EleFeeAccountNum);
            //handler.AddTag("1F20", Utility.AmountToString(CommonData.Amount.ToString()));
            //handler.AddTag("1F21", DateTime.Now.ToString("yyyyMMdd"));
            //handler.AddTag("1F22", PayEntity.PowerCardData.CardNo);
            //handler.AddTag("1F23", PayEntity.PowerCardData.Random);
            //handler.AddTag("1F24", PayEntity.PowerCardData.CardInfo);
            //handler.AddTag("1F25", PayEntity.PowerIdentity);
            //handler.AddTag("FF30", GetBranchNo());
            //handler.AddTag("FF31",GetOperatorNo());

            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length + 1];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);

            Array.Copy(Encoding.Default.GetBytes("#"), 0, result, tmp.Length + content.Length, 1);

            return(result);
        }
コード例 #8
0
        protected override void OnSucc()
        {
            //48域
            UserID = Encoding.Default.GetString(RecvPackage.GetArrayData(48), 14, 40);
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());

            UserName    = handler.GetStringValue("2F1A");
            UserNo      = handler.GetStringValue("BF06");
            UserTel     = handler.GetStringValue("BF07");
            IDCard      = handler.GetStringValue("BF08");
            Sex         = handler.GetStringValue("BF09") == "0" ? "男" : "女";
            RecordCount = int.Parse(handler.GetStringValue("BF10"));
            RecordInfo  = handler.GetStringValue("BF11");
        }
コード例 #9
0
 protected override void OnSucc()
 {
     SetBatchNo(RecvPackage.GetString(60).Substring(2, 6)); //记录批次号
     byte[] bField63 = RecvPackage.GetArrayData(63);
     if (bField63[0] == 0x31)
     {
         BCA = new byte[bField63.Length - 1];
         Array.Copy(bField63, 1, BCA, 0, bField63.Length - 1);
         Dictionary <string, byte[]> ht = new Dictionary <string, byte[]>();
         TLVHandler.ParseTLV(BCA, ht);
         if (!ValidatorCA(ht))
         {
             SetResult(TransResult.E_UNPACKET_FAIL);
         }
     }
 }
コード例 #10
0
        protected override void OnSucc()
        {
            //48域
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());

            if (_mProcess == 1)
            {
                PayEntity.ReWriteCardTraceNo1 = handler.GetStringValue("BF05");
            }
            else if (_mProcess == 2)
            {
                PayEntity.ReWriteCardTraceNo2  = handler.GetStringValue("BF05");
                PayEntity.ReWriteCardReturnMsg = handler.GetStringValue("3F1B");
                PayEntity.PowerCardData.W_EF1  = handler.GetStringValue("3F2B");
                PayEntity.PowerCardData.W_EF2  = handler.GetStringValue("3F3B");
                PayEntity.PowerCardData.W_EF5  = handler.GetStringValue("3F4B");
                if (string.IsNullOrEmpty(handler.GetStringValue("3F5B")))
                {
                    PayEntity.PowerPayCount = int.Parse(handler.GetStringValue("3F5B"));
                }
                PayEntity.ReWriteCardAmount = handler.GetStringValue("3F6B");
                PayEntity.ReWriteUserAmount = handler.GetStringValue("3F7B");
            }
            //PayEntity.ConfirmTraceNo = handler.GetStringValue("BF05");
            //PayEntity.PowerCardData.W_EF2 = handler.GetStringValue("1F38");
            //PayEntity.PowerCardData.W_EF5 = handler.GetStringValue("1F39");

            if (_mProcess != 1)
            {
                byte[] tmp    = RecvPackage.GetArrayData(57);
                string temp57 = Encoding.Default.GetString(tmp);// PubFunc.ByteArrayToHexString(tmp, tmp.Length).Trim();
                Log.Debug(temp57);

                if (_mProcess == 2)
                {
                    PayEntity.PowerCardData.W_EF31   = CalcuMsg(temp57.Substring(0, 130));
                    PayEntity.PowerCardData.W_EF32   = CalcuMsg(temp57.Substring(130, 30));
                    PayEntity.PowerCardData.W_EF41   = CalcuMsg(temp57.Substring(160, 130));
                    PayEntity.PowerCardData.W_EF42   = CalcuMsg(temp57.Substring(290, 30));
                    PayEntity.PowerCardData.CertDes  = temp57.Substring(320, 16);
                    PayEntity.PowerCardData.LimitDes = temp57.Substring(336, 16);
                    PayEntity.PowerCardData.ExtDes   = temp57.Substring(352, 16);
                }
            }
        }
コード例 #11
0
        private byte[] PacketField48()
        {
            byte[]     tmp     = HeandField48();
            TLVHandler handler = new TLVHandler();

            handler.AddTag("1F50", "0004");
            handler.AddTag("FF28", GetMerchantNo());
            handler.AddTag("FF29", GetTerminalNo());

            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length + 1];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);

            Array.Copy(Encoding.Default.GetBytes("#"), 0, result, tmp.Length + content.Length, 1);

            return(result);
        }
コード例 #12
0
 protected override void OnHostFail(string returnCode, string returnMessage)
 {
     base.OnHostFail(returnCode, returnMessage);
     try
     {
         TLVHandler handler = new TLVHandler();
         handler.ParseTLV(Get48TLVBytes());
         ReturnMessage = handler.GetStringValue("FF52");
         if (ReturnCode == "TH")
         {
             ReturnMessage = handler.GetStringValue("1F1B");
         }
     }
     catch (Exception ex)
     {
         Log.Debug("Query HostFail" + ex.Message);
     }
 }
コード例 #13
0
        private byte[] PacketField48()
        {
            string temp = "B1V2560265200000" + PayEntity.PowerCardNo.PadRight(50, ' ') + "000000";

            byte[]     tmp     = Encoding.Default.GetBytes(temp);
            TLVHandler handler = new TLVHandler();

            handler.AddTag("1F50", "0004");
            handler.AddTag("FF28", GetMerchantNo());
            handler.AddTag("FF29", GetTerminalNo());
            //handler.AddTag("3F2B", "51401");

            handler.AddTag("3F2B", PayEntity.PowerPayConfirmCode);
            if (_mProcess == 1)
            {
                handler.AddTag("1F3A", PayEntity.PowerCardData.EF1);
                handler.AddTag("1F4A", PayEntity.PowerCardData.EF2);
                handler.AddTag("1F5A", PayEntity.PowerCardData.EF5);
                //handler.AddTag("1F3A", "680100270280000000010000000000120000500000000000000001000001000000647890000445177640029316");
                //handler.AddTag("1F4A", "0000006400000007");
                //handler.AddTag("1F5A", "6811002B02000001000001000000647890000445177640000075F800000007000000000100040100000015010218016D16");
            }
            else if (_mProcess == 2)
            {
                handler.AddTag("BF05", PayEntity.ReWriteCardTraceNo1);
            }
            //else if (_mProcess == 3)
            //{
            //    handler.AddTag("BF05", PayEntity.ReWriteCardTraceNo2);
            //}
            handler.AddTag("FF01", _mProcess.ToString());
            handler.AddTag("1F1A", PayEntity.PowerBusiness.ToString());
            handler.AddTag("1F2A", PayEntity.CityPowerNo);
            //handler.AddTag("1F2A", "51401");

            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length + 1];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);

            Array.Copy(Encoding.Default.GetBytes("#"), 0, result, tmp.Length + content.Length, 1);

            return(result);
        }
コード例 #14
0
        private byte[] PacketField48()
        {
            string temp = "U6V2560265000000" + PayEntity.DBNo.PadLeft(50, ' ') + "000000";

            byte[] tmp = Encoding.Default.GetBytes(temp);

            TLVHandler handler = new TLVHandler();

            handler.AddTag("1F50", "0004");
            handler.AddTag("FF28", GetMerchantNo());
            handler.AddTag("FF29", GetTerminalNo());
            handler.AddTag("BF05", PayEntity.QueryTraceNo);
            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length + 1];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);

            Array.Copy(Encoding.Default.GetBytes("#"), 0, result, tmp.Length + content.Length, 1);

            return(result);
        }
コード例 #15
0
        /// <summary>
        /// 冲正使用的55域
        /// </summary>
        protected byte[] GetICAutoField55(byte[] _field55, int fieldLen)
        {
            //95 9F1E 9F10 9F36 DF31
            var field55 = new byte[fieldLen];

            Array.Copy(_field55, field55, fieldLen);
            var tlv     = new TLVHandler();
            var handler = new TLVHandler();

            handler.ParseTLV(field55);
            var value = new byte[0];

            #region 打包Field55

            if ((value = handler.GetBytesValue("95")) != null)
            {
                tlv.AddTag("95", value);
            }
            if ((value = handler.GetBytesValue("9F1E")) != null)
            {
                tlv.AddTag("9F1E", value);
            }
            if ((value = handler.GetBytesValue("9F10")) != null)
            {
                tlv.AddTag("9F10", value);
            }
            if ((value = handler.GetBytesValue("9F36")) != null)
            {
                tlv.AddTag("9F36", value);
            }
            if ((value = handler.GetBytesValue("DF31")) != null)
            {
                tlv.AddTag("DF31", value);
            }

            #endregion

            return(tlv.GetTLV());
        }
コード例 #16
0
        protected override void OnSucc()
        {
            //48域
            TLVHandler handler = new TLVHandler();

            handler.ParseTLV(Get48TLVBytes());
            if (_currentIndex == 1)
            {
                PayEntity.CheckTraceNo        = handler.GetStringValue("BF05");
                PayEntity.CheckReturnMsg      = handler.GetStringValue("1F1B");
                PayEntity.CheckRechargeAmount = handler.GetStringValue("1F2B");
                PayEntity.CheckRemuneration   = handler.GetStringValue("1F3B");
                PayEntity.CheckOrderStatus    = handler.GetStringValue("1F4B");
                //PayEntity.PowerCardData.EF1 = handler.GetStringValue("3F5B");
                //PayEntity.PowerCardData.EF2 = handler.GetStringValue("3F6B");
                //PayEntity.PowerCardData.EF5 = handler.GetStringValue("3F7B");
                //PayEntity.CheckBuyEleTimes = handler.GetStringValue("3F8B");
                //PayEntity.CheckWriteAmount = handler.GetStringValue("3F9B");
                //PayEntity.CheckUserAmount = handler.GetStringValue("3F10");
            }

            //byte[] tmp = RecvPackage.GetArrayData(57);
            //string temp57 = PubFunc.ByteArrayToHexString(tmp, tmp.Length).Trim();
            //Log.Debug(temp57);

            //if (_currentIndex == 1)
            //{
            //    PayEntity.CheckBF31 = temp57.Substring(0, 256);
            //}
            //else if (_currentIndex == 2)
            //{
            //    PayEntity.CheckBF32 = temp57.Substring(0, 256);
            //    PayEntity.CheckBF41 = temp57.Substring(256, 256);
            //    PayEntity.CheckBF42 = temp57.Substring(512, 256);
            //    PayEntity.Check57sKey1 = temp57.Substring(768, 16);
            //    PayEntity.Check57sKey2 = temp57.Substring(784, 16);
            //    PayEntity.Check57sKey3 = temp57.Substring(800, 16);
            //}
        }
コード例 #17
0
        private byte[] PacketField48()
        {
            string field48 = "C3v22901510000" + "".PadLeft(40, ' ') + "000000" + "2";

            byte[] tmp = Encoding.Default.GetBytes(field48);

            string loginName   = LoginName;
            string loginPsd    = LoginPsd;
            string loginNewPsd = LoginNewPsd;

#if DEBUG
            loginName = "FW010101Z00501010" + LoginName;
#endif
            TLVHandler handler = new TLVHandler();
            handler.AddTag("FF44", loginName);
            handler.AddTag("FF45", loginPsd);
            handler.AddTag("FF46", loginNewPsd);
            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);
            return(result);
        }
コード例 #18
0
        private byte[] PacketField48()
        {
            string temp = "C3V2571165010000" + "".PadLeft(50, ' ') + "000000";

            byte[]     tmp     = Encoding.Default.GetBytes(temp);
            TLVHandler handler = new TLVHandler();

            handler.AddTag("1F50", "0004");
            handler.AddTag("FF28", GetMerchantNo());
            handler.AddTag("FF29", GetTerminalNo());
            handler.AddTag("2F1A", _index);
            handler.AddTag("2F2A", _cjjgid);
            handler.AddTag("2F3A", PayEntity.LicenseNo);

            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length + 1];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);

            Array.Copy(Encoding.Default.GetBytes("#"), 0, result, tmp.Length + content.Length, 1);

            return(result);
        }
コード例 #19
0
        private byte[] PacketField48()
        {
            byte[] tmp = HeandField48();

            TLVHandler handler = new TLVHandler();

            handler.AddTag("1F50", "0004");
            handler.AddTag("FF28", GetMerchantNo());
            handler.AddTag("FF29", GetTerminalNo());
            handler.AddTag("BF05", PayEntity.QueryTraceNo);
            if (PayEntity.PublishPayType == Entity.YaPublishPayType.TV)
            {
                handler.AddTag("2F1A", PayEntity.SelectMonth.ToString());
                handler.AddTag("2F2A", Utility.AmountToString(PayEntity.SelectPrice.ToString()).TrimStart('0'));
            }
            byte[] content = handler.GetTLVWithLength(3);
            byte[] result  = new byte[tmp.Length + content.Length + 1];
            Array.Copy(tmp, result, tmp.Length);
            Array.Copy(content, 0, result, tmp.Length, content.Length);

            Array.Copy(Encoding.Default.GetBytes("#"), 0, result, tmp.Length + content.Length, 1);

            return(result);
        }