亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cb8583pack.java

?? 8583 pack and unpack 8583 pro
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
        ruleList = SysFunction.splitString(inParam,"|");
       // System.out.println("InParam:"+inParam);
        for(int i=0 ; i<ruleList.length ; i++){
           // System.out.println("ruleList:"+i+"="+ruleList[i]);
            if(ruleList[i] == null || ruleList[i].trim().equals(""))
              continue;
            fieldList = SysFunction.splitString(ruleList[i],":");
            tmpArrayByte = null;
            if(fieldList != null && fieldList.length >= 5 && (fieldList[3].trim().equals("888") || fieldList[3].trim().equals("889"))){
              boolean  hasField = false;
              for(int j=0; j<requestPack.getSize(); j++){
                 DataField tempChkField = (DataField)requestPack.getDomain(j);
                 if(tempChkField.fieldRule.startsWith(new StringBuffer(fieldList[0].trim()).append(":").append(fieldList[1].trim()).toString())){
                   hasField = true;
                   break;
                 }
              }
              if(hasField)
                continue;
             DataField tempAddField = new TradeField();
              tempAddField.fieldRule = new StringBuffer(fieldList[0].trim()).append(":").append(fieldList[1].trim()).toString();
              tempAddField.value = new StringBuffer(tempAddField.fieldRule).append("|").append(fieldList[4].trim()).toString().getBytes();
              requestPack.add(tempAddField);
              System.out.println("Adding field-------------"+tempAddField.fieldRule);

              if(!fieldDataList.containsKey(fieldList[0].trim())){
                 if(fieldList[2].trim().equals("0")){
                   fieldDataList.put(fieldList[0].trim(),fieldList[4].trim().getBytes());
                 }
                 else{
                   int tmpFieldStartPos = Integer.parseInt(fieldList[1].trim());
                   int tmpFieldLen = Integer.parseInt(fieldList[2].trim());
                   tmpArrayByte = new byte[tmpFieldStartPos + tmpFieldLen];
                   SysFunction.clearByteArray(tmpArrayByte,(byte)0x20);
                   System.arraycopy(fieldList[4].trim().getBytes(), 0, tmpArrayByte,tmpFieldStartPos, tmpFieldLen);
                   fieldDataList.put(fieldList[0].trim(),tmpArrayByte);
                 }
                 packetBitmap.openBit(Integer.parseInt(fieldList[0].trim()));
               }
               else{
                 if(!fieldList[2].trim().equals("0")){
                   tmpArrayByte = (byte[]) fieldDataList.get(fieldList[0].trim());
                   int tmpFieldStartPos = Integer.parseInt(fieldList[1].trim());
                   int tmpFieldLen = Integer.parseInt(fieldList[2].trim());
                   if (tmpFieldStartPos + tmpFieldLen > tmpArrayByte.length)
                     tmpArrayByte = SysFunction.changeMemLen(tmpArrayByte,
                         tmpFieldStartPos + tmpFieldLen);
                   System.arraycopy(fieldList[4].trim().getBytes(), 0, tmpArrayByte,
                                    tmpFieldStartPos, tmpFieldLen);
                   fieldDataList.put(fieldList[0].trim(),
                                     tmpArrayByte);
                 }
               }
            }
        }

        tmpArrayByte = null;
        String traceNo = SysFunction.getAddTraceNo(TRACENO_FILE);
        requestPack.traceNo = traceNo;
        retHeader = packHeader(tradeCode, cardNo, traceNo);
        headerBuf = (byte[])retHeader.get(0);
        fieldDataList.put("3", tradeParam.tradeToCode.getBytes());
        packetBitmap.openBit(3);
        fieldDataList.put("7", SysFunction.getMMDDHHMISS().getBytes());
        packetBitmap.openBit(7);
        fieldDataList.put("11", traceNo.getBytes());
        packetBitmap.openBit(11);
        fieldDataList.put("12", SysFunction.getHHMISS().getBytes());
        packetBitmap.openBit(12);
        fieldDataList.put("13", SysFunction.getMMDD().getBytes());
        packetBitmap.openBit(13);
        CB8583Config tradeConfig = CB8583Config.getInstance();
        fieldDataList.put("25", ((String[])retHeader.get(1))[8].getBytes());
        packetBitmap.openBit(25);
        fieldDataList.put("32", tradeConfig.acqInstID.getBytes());
        packetBitmap.openBit(32);
        fieldDataList.put("41", tradeConfig.termID.getBytes());
        packetBitmap.openBit(41);
        fieldDataList.put("42", tradeConfig.identifyCode.getBytes());
        packetBitmap.openBit(42);
        fieldDataList.put("1", packetBitmap.getBitmap());
        packetBitmap.openBit(1);
      /*
        System.out.println("Get bitmap:"+SysFunction.convertByteArrayToHexStr(packetBitmap.getBitmap()));
        System.out.println("102Field value:"+new String((byte[])fieldDataList.get(String.valueOf(102))));
        if(packetBitmap.isBitSet(102))
          System.out.println("has 102Field------------");
        else
          System.out.println("has not 102Field------------");
        debug 域值

       */
      for (int i = 1; i <= 128; i++) {
          if (packetBitmap.isBitSet(i)) {
            System.out.println("Pack buf no:"+i);
            System.out.println(" data:"+new String((byte[])fieldDataList.get(String.valueOf(i))));
            if (i == 2)
              requestPack.accountNo = new String((byte[])fieldDataList.get(String.valueOf(i)));
            else if (i == 4)
              requestPack.moneyNum = new String((byte[])fieldDataList.get(String.valueOf(i)));

            // System.out.println("process code three ="+ new String((byte[])fieldDataList.get(String.valueOf(3))));
            if(i==3 && (new String((byte[])fieldDataList.get(String.valueOf(3)))).trim().equals("936011")) {
                 fieldByteArray =packField(3,"936000".getBytes());
               }else{
                 fieldByteArray = packField(i,(byte[]) fieldDataList.get(String.valueOf(i)));
               }
            System.arraycopy(fieldByteArray, 0, bodyBuf, bufferCurPos,
                             fieldByteArray.length);
            bufferCurPos += fieldByteArray.length;
          }
        }
        byte[] packetLen = SysFunction.convertIntToStr(80 + 4 + 4 + bufferCurPos, 4).
            getBytes();
        byte[] bodyLen = SysFunction.convertIntToStr(bufferCurPos+4, 4).getBytes();
        destArrayBuf = new byte[4 + 80 + 4 + 4 + bufferCurPos];
        System.arraycopy(packetLen, 0, destArrayBuf, 0, 4);
        System.arraycopy(headerBuf, 0, destArrayBuf, 4, 80);
        System.arraycopy(bodyLen, 0, destArrayBuf, 84, 4);
        System.arraycopy(((String[])retHeader.get(1))[1].getBytes(), 0, destArrayBuf, 88, 4);
        System.arraycopy(bodyBuf, 0, destArrayBuf, 92, bufferCurPos);
        packetLen = null;
        bodyLen   = null;
      }catch(Exception ex){
        ex.printStackTrace();
      }
      finally{
        if(retHeader != null){
           retHeader.clear();
           retHeader = null;
        }
        if(fieldDataList != null){
           fieldDataList.clear();
           fieldDataList = null;
        }
        s =null;
        srcvalue = null;
        desvalue = null;
        fieldByteArray = null;
        ruleList = null;
        fieldList = null;
        headerBuf = null;
      }
      return destArrayBuf;
  }


  public static TradePacket unPack8583(byte[] recvBuf)throws PacketException{
      if(recvBuf == null || recvBuf.length < 84)
          throw new PacketException("解包出錯,返回包為空或長度不夠");
      byte[] packetHeader = new byte[80];
      byte[] bodyLen = new byte[4];
      byte[] packetBody = null;
      byte[] messageId = new byte[4];
      byte[] bitmapField = new byte[16];
      CB8583PacketHeader header = new CB8583PacketHeader();
      CB8583Bitmap bitmap = new CB8583Bitmap();
      TradePacket retDataPacket = null;//放返回的8583數(shù)據(jù)
      String[] outParamList = null;//放返回8583包中各域的解包規(guī)則
      String[] outRecordParam = null;//放8583包明細(xì)的解包規(guī)則
      String[] retCodeParam = null;//放返回碼8583包明細(xì)的解規(guī)則
      byte[] field48Value = null;
      byte[] field47Value = null;
      try{
        int cusPos = 0;
        System.arraycopy(recvBuf, cusPos, packetHeader, 0, 80);
        cusPos += 80;
        System.arraycopy(recvBuf, cusPos, bodyLen, 0, 4);
        cusPos += 4;
        int iBodyLen = Integer.parseInt(new String(bodyLen));
        System.out.println("Unpack body len:"+iBodyLen);
        if (iBodyLen + 4 + 80 > recvBuf.length)
          throw new PacketException("解包出錯,返回包為空或長度不夠");
        System.arraycopy(recvBuf, cusPos, messageId, 0, 4);
        cusPos += 4;
        byte firstBitmap = recvBuf[cusPos];
        int bitmapSize = 0;
        if ( (firstBitmap & 0x80) == 0x80)
          bitmapSize = 16;
        else
          bitmapSize = 8;
        System.arraycopy(recvBuf, cusPos, bitmapField, 0, bitmapSize);
        cusPos += bitmapSize;
        bitmap.setBitmap(bitmapField);
        header.setPacketHeader(packetHeader);
        System.out.println("Unpack bitmap:"+SysFunction.convertByteArrayToHexStr(bitmapField));

        retDataPacket = new TradePacket();
        DataField retDataField = null;
        //取其中某一交易的規(guī)則
        TradeParam tradeParam = getTradeConfig(new String(header.getPrcCode()));
        //取其中輸出項目的規(guī)則
        outParamList = SysFunction.splitString((String) tradeParam.paramList.get("out"), "#");
        for(int m=0;m<outParamList.length;m++){
            System.out.println("outParamList value["+m+"]="+String.valueOf(outParamList[m]));
        }
        if (outParamList == null || outParamList.length < 1)
          throw new PacketException("解包出錯,交易沒有配置");
        StringBuffer outTitleParam = new StringBuffer("|");
        outTitleParam.append(outParamList[0]);
        if (outParamList.length >= 2)
          outRecordParam = SysFunction.splitString(outParamList[1], "|");
        retCodeParam = SysFunction.splitString((String) tradeParam.paramList.get("retcode"), "|");
        if(retCodeParam == null || retCodeParam.length < 3)
          throw new PacketException("解包出錯,返回碼沒有配置");

        String[] tmpRuleValue = null;
        String   tmpDomainNo  = null;
        byte[]   tmpValue     = null;
        for (int i = 2; i <= bitmapSize * 8; i++) {
          if (bitmap.isBitSet(i)) {
            System.out.println("Unpack no:"+i);
            CB8583UnpackField unPacketField = unpackField(recvBuf, cusPos, i);
            System.out.println("Unpack value:"+new String(unPacketField.getRetByteArray()));
            cusPos += unPacketField.getPosIncValue();
            tmpRuleValue = null;
            tmpDomainNo = new StringBuffer("|").append(i).append(":").toString();
        //  System.out.println("tmpDomainNo="+tmpDomainNo);
            if (outTitleParam.indexOf(tmpDomainNo) >= 0){
            //  System.out.println("outTitleParam value="+outTitleParam.toString());
              int startPos = outTitleParam.indexOf(tmpDomainNo)+1;
              int endPos   = outTitleParam.indexOf("|",startPos);
              if(endPos >= startPos){
             //   System.out.println("Title Param"+outTitleParam.substring(startPos,endPos)+" tmpNo:"+tmpDomainNo);
                tmpRuleValue = SysFunction.splitString(outTitleParam.substring(startPos,endPos),":");
              }else{
             //   System.out.println("Title Param"+outTitleParam.substring(startPos)+" tmpNo:"+tmpDomainNo);
                tmpRuleValue = SysFunction.splitString(outTitleParam.substring(startPos),":");
              }
              retDataField = new TradeField();//域值
          //  retDataField.fieldRule = new StringBuffer(i).append(":").append(tmpRuleValue[1]).toString();
              retDataField.fieldRule = new StringBuffer("").append(i).append(":").append(tmpRuleValue[1]).append("|").toString();
              retDataField.fieldSign = SignConst.STRING_DOMAIN;
              tmpValue = null;
              System.out.println("data.fieldRule="+retDataField.fieldRule);
              System.out.println("  Unpack src:"+new String(unPacketField.getRetByteArray())+" Start Pos:"+tmpRuleValue[1]+" Len:"+tmpRuleValue[2]);
              if(tmpRuleValue[2].trim().equals("0")){
                 tmpValue = unPacketField.getRetByteArray();
                 System.out.println("tmpvalue:="+new String(tmpValue));
              }else{
                 tmpValue = new byte[Integer.parseInt(tmpRuleValue[2].trim())];
                 System.arraycopy(unPacketField.getRetByteArray(),Integer.parseInt(tmpRuleValue[1].trim()),tmpValue,0,Integer.parseInt(tmpRuleValue[2].trim()));
              }
              if(tmpRuleValue[3].trim().equals("0")){
                  retDataField.value = tmpValue;
              }
              else{
                if(tmpRuleValue.length < 5)
                  retDataField.value = convertField(tmpValue,Integer.parseInt(tmpRuleValue[3].trim()),Integer.parseInt(tmpRuleValue[2].trim()),null,null);
                else
                  retDataField.value = convertField(tmpValue,Integer.parseInt(tmpRuleValue[3].trim()),Integer.parseInt(tmpRuleValue[2].trim()),tmpRuleValue[4].trim().getBytes(),tmpRuleValue[4].trim());
              }
             System.out.println("retDataField value="+new String(retDataField.value));
              retDataPacket.add(retDataField);
            }
            if(i == 48){
              field48Value = unPacketField.getRetByteArray();
            }
            else if(i == 47) {
              field47Value = unPacketField.getRetByteArray();
            }
            else if(i == 11){
              retDataPacket.traceNo = new String(unPacketField.getRetByteArray());
            }
            if(retCodeParam[0].trim().toUpperCase().startsWith(String.valueOf(i)+":")){
              retDataPacket.errCode = new String(unPacketField.getRetByteArray());
              if (retDataPacket.errCode==null){
               retDataPacket.errCode="0B";
              }
              if(retCodeParam[1].indexOf(retDataPacket.errCode) >= 0){
                retDataPacket.errCode = "00";
                retDataPacket.errMsg = "交易成功";
              }
              else{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区在线 | 日本成人在线视频网站| 卡一卡二国产精品| 欧美在线看片a免费观看| 国产亚洲欧美日韩日本| 五月天网站亚洲| 日本久久电影网| 国产精品欧美一区喷水| 久久精品二区亚洲w码| 欧美在线免费观看视频| 最新中文字幕一区二区三区| 国产精品一二三区在线| 日韩写真欧美这视频| 亚洲韩国一区二区三区| 一本在线高清不卡dvd| 中文字幕乱码久久午夜不卡| 麻豆国产精品官网| 日韩一级高清毛片| 婷婷国产在线综合| 欧美在线你懂的| 亚洲黄色在线视频| 日本道免费精品一区二区三区| 国产精品网站一区| 国产91高潮流白浆在线麻豆| 久久综合狠狠综合久久综合88| 免费一级片91| 日韩欧美一区中文| 日韩电影在线免费观看| 欧美精三区欧美精三区| 亚洲自拍偷拍麻豆| 欧美性高清videossexo| 亚洲第一福利一区| 欧美精品三级在线观看| 日韩不卡一区二区| 日韩欧美一卡二卡| 国产一区二区毛片| 欧美激情在线一区二区| 99久久综合色| 亚洲激情图片qvod| 欧美精品色一区二区三区| 蜜芽一区二区三区| 久久蜜桃av一区精品变态类天堂 | 久久精品久久久精品美女| 日韩精品一区二区三区在线观看| 久久91精品久久久久久秒播| 精品99久久久久久| 成人免费毛片aaaaa**| 亚洲欧洲三级电影| 欧美日韩在线播放一区| 视频一区二区中文字幕| 亚洲精品在线观看网站| 高清beeg欧美| 亚洲一区二区四区蜜桃| 在线成人免费视频| 国产剧情一区二区| ...av二区三区久久精品| 欧美日韩激情一区二区| 久久9热精品视频| 国产精品入口麻豆原神| 一本色道久久加勒比精品 | 亚洲欧美综合网| 欧美午夜精品一区二区蜜桃| 麻豆国产欧美日韩综合精品二区| 国产夜色精品一区二区av| 一本大道久久a久久综合婷婷| 日韩精品一二三区| 国产精品国产自产拍高清av| 欧美日韩一区二区三区四区 | 亚洲在线免费播放| 欧美不卡一区二区三区四区| 国产99久久久国产精品免费看| 亚洲一区二区三区小说| 欧美成人精品1314www| 99久久精品费精品国产一区二区| 天堂影院一区二区| 国产精品麻豆欧美日韩ww| 欧美另类一区二区三区| 国产成人综合精品三级| 亚洲成人免费看| 亚洲日本在线观看| 精品成a人在线观看| 欧美日韩国产三级| 99久久99久久精品免费看蜜桃| 日av在线不卡| 一区二区三区中文字幕精品精品| 2023国产精品自拍| 欧美日韩电影在线播放| 一本一道综合狠狠老| 国产成人日日夜夜| 久久精品国产亚洲高清剧情介绍 | 国产欧美一区二区在线| 欧美精品丝袜久久久中文字幕| 99精品视频在线观看免费| 国产一区二区三区四区五区入口| 五月激情综合网| 日韩毛片一二三区| 国产精品美女久久久久久2018| 日韩欧美亚洲一区二区| 欧美剧在线免费观看网站| 色婷婷香蕉在线一区二区| 成人高清视频在线观看| 国产精品综合二区| 精品一区二区免费在线观看| 免费成人av在线播放| 日韩精品乱码av一区二区| 香蕉成人啪国产精品视频综合网 | 在线精品观看国产| 99精品国产视频| 99精品久久免费看蜜臀剧情介绍| 成人国产精品免费观看视频| 国产福利一区在线| 国产成人精品一区二| 国内外成人在线| 麻豆一区二区99久久久久| 日韩电影免费在线观看网站| 亚洲午夜久久久久久久久久久| 亚洲欧美日韩国产成人精品影院 | 国产清纯美女被跳蛋高潮一区二区久久w| 3atv在线一区二区三区| 3d动漫精品啪啪1区2区免费| 欧美一区二区三区思思人| 91精品久久久久久蜜臀| 日韩欧美国产小视频| 久久伊人蜜桃av一区二区| 国产亚洲一二三区| 国产人成一区二区三区影院| 日韩理论电影院| 一区二区日韩电影| 亚洲国产精品久久久久秋霞影院| 午夜视频在线观看一区二区三区| 三级精品在线观看| 久久成人免费网| 国产传媒一区在线| 色94色欧美sute亚洲线路一久| 欧美日韩精品电影| 欧美大片顶级少妇| 国产日韩精品一区二区浪潮av| 最新国产成人在线观看| 午夜精品在线看| 国产成人精品一区二区三区四区| 99vv1com这只有精品| 在线成人高清不卡| 国产丝袜美腿一区二区三区| 亚洲四区在线观看| 亚洲成a人v欧美综合天堂下载 | 亚洲影院理伦片| 蜜桃视频在线一区| 丁香桃色午夜亚洲一区二区三区| 色94色欧美sute亚洲线路一久| 67194成人在线观看| 国产日产欧美一区二区视频| 亚洲综合在线电影| 国产一区二区三区蝌蚪| 色94色欧美sute亚洲线路二| 精品国产乱码久久久久久影片| 国产精品久久久久久久裸模| 天堂久久久久va久久久久| 国产高清久久久| 欧美精品日韩一区| 亚洲人成小说网站色在线| 毛片av一区二区| 在线观看一区不卡| 国产亚洲欧美一区在线观看| 亚洲成人动漫精品| eeuss影院一区二区三区| 欧美一区二区福利在线| 17c精品麻豆一区二区免费| 九九**精品视频免费播放| 色琪琪一区二区三区亚洲区| 精品欧美一区二区久久| 亚洲综合图片区| 国产suv精品一区二区6| 欧美一区二区三区影视| 亚洲午夜精品17c| 97se亚洲国产综合自在线| 久久精品人人做| 国产揄拍国内精品对白| 欧美三级视频在线| 亚洲欧美日韩久久| 成人黄页毛片网站| 久久亚洲春色中文字幕久久久| 首页国产欧美日韩丝袜| 91成人网在线| 中文字幕亚洲综合久久菠萝蜜| 激情五月激情综合网| 欧美一区2区视频在线观看| 亚洲美女屁股眼交| 播五月开心婷婷综合| 国产日韩欧美麻豆| 国产精品中文字幕日韩精品 | 亚洲va欧美va国产va天堂影院| aaa国产一区| 亚洲欧洲av一区二区三区久久| 国产乱理伦片在线观看夜一区| 日韩无一区二区| 婷婷久久综合九色综合伊人色| 欧美日韩精品三区| 丝袜诱惑制服诱惑色一区在线观看| 91电影在线观看| 亚洲高清一区二区三区|