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

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

?? cb8583pack.java

?? 8583 pack and unpack 8583 pro
?? JAVA
?? 第 1 頁 / 共 3 頁
字號(hào):
package com.szzt.trade.zsbank;

import com.szzt.common.SysFunction;
import com.szzt.common.datapacket.Domain;
import com.szzt.common.datapacket.DataPacket;
import com.szzt.common.datapacket.DataField;
import com.szzt.common.datapacket.SignConst;
import com.szzt.trade.tradestruct.*;
import com.szzt.trade.util.TradeDataConvert;
import com.szzt.trade.util.TradeDataSelectConvert;
import java.util.Map;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Iterator;
import com.szzt.common.datapacket.PacketException;


public class CB8583Pack {
  private static final String TRACENO_FILE="boc_traceno.txt";

  //private static byte[] pSrvCdCod = null;

  public CB8583Pack() {
  }

  public static byte[] packField(int fieldNo,byte[] fieldValue) throws PacketException{
    if (fieldValue==null)
      throw new PacketException("打包出錯(cuò):字段為空");
    Integer fieldKey = new Integer(fieldNo);
    CB8583ConvertParam convertField=(CB8583ConvertParam)CB8583ConvertConst.convertMapTable.get(fieldKey);
    if (convertField==null)
      throw new PacketException("打包出錯(cuò):字段沒有配置轉(zhuǎn)換");
    int packMethod=convertField.getPackMethod();
    int packMaxSize=convertField.getMaxSize();

    byte[] destByteArray=null;
    switch (packMethod) {
      case CB8583ConvertConst.PACK_STR_TO_ASC:
        destByteArray = CB8583ConvertMethod.pack_Str_To_Asc(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_STR_TO_ASC0:
        destByteArray = CB8583ConvertMethod.pack_Str_To_AscZero(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_BIT_TO_BIT:
        destByteArray = CB8583ConvertMethod.pack_Bit_To_Bit(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_STR_TO_BCD:
        destByteArray = CB8583ConvertMethod.pack_Str_To_BCD(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_STR_TO_AV2:
        destByteArray = CB8583ConvertMethod.pack_Str_To_AV2(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_STR_TO_AV3:
        destByteArray = CB8583ConvertMethod.pack_Str_To_AV3(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_STR_TO_BV2:
        destByteArray = CB8583ConvertMethod.pack_Str_To_BV2(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_STR_TO_BV3:
        destByteArray = CB8583ConvertMethod.pack_Str_To_BV3(fieldValue, packMaxSize);
        break;
      case CB8583ConvertConst.PACK_STR_TO_XBCD:
        destByteArray = CB8583ConvertMethod.pack_Str_To_XBCD(fieldValue, packMaxSize);
        break;
      default:
        throw new PacketException("打包出錯(cuò),沒有打包方法");
    }
    if(destByteArray==null)
      throw new PacketException("打包出錯(cuò)");
    if (destByteArray.length<=0)
      throw new PacketException("打包出錯(cuò)");
    return destByteArray;
  }



  public static CB8583UnpackField unpackField(byte[] srcByteArray,int startPos,int fieldKey)
    throws PacketException
  {
    if (srcByteArray==null || startPos<0)
      throw new PacketException("解包出錯(cuò):參數(shù)錯(cuò)");
    if (srcByteArray.length<=0)
      throw new PacketException("解包出錯(cuò):參數(shù)錯(cuò)");
    CB8583UnpackField unpackResult=null;
    CB8583ConvertParam convertField=(CB8583ConvertParam)CB8583ConvertConst.convertMapTable.get(new Integer(fieldKey));
    if (convertField==null)
      throw new PacketException("解包出錯(cuò):字段沒有配置轉(zhuǎn)換");
    int unPackMethod=convertField.getUnPackMethod();
    int unPackMaxSize=convertField.getMaxSize();

    switch(unPackMethod) {
      case CB8583ConvertConst.UNPACK_ASC_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_Asc_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_ASC0_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_Asc_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_BIT_TO_BIT:
        unpackResult=CB8583ConvertMethod.unpack_Bit_To_Bit(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_BCD_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_BCD_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_AV2_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_AV2_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_AV3_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_AV3_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_BV2_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_BV2_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_BV3_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_BV3_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      case CB8583ConvertConst.UNPACK_XBCD_TO_STR:
        unpackResult=CB8583ConvertMethod.unpack_XBCD_To_Str(srcByteArray,startPos,unPackMaxSize);
        break;
      default:
        throw new PacketException("解包出錯(cuò):沒有轉(zhuǎn)換方法");
    }
    if (unpackResult==null)
      throw new PacketException("解包出錯(cuò)");
    if (unpackResult.getRetByteArray()==null)
      throw new PacketException("解包出錯(cuò)");
    if (unpackResult.getRetByteArray().length<=0)
      throw new PacketException("解包出錯(cuò)");
    if (unpackResult.getPosIncValue()<=0)
      throw new PacketException("解包出錯(cuò)");
    return unpackResult;
  }

  public static TradeParam getTradeConfig(String tradeCode)throws PacketException{
      CB8583Config tradeConfig = CB8583Config.getInstance();
      TradeParam tradeParam = (TradeParam)tradeConfig.tradeList.get(tradeCode);
      return tradeParam;
  }

  public static ArrayList packHeader(String tradeCode,String cardNo,String traceNo)throws PacketException{
      CB8583Config tradeConfig = CB8583Config.getInstance();
      TradeParam tradeParam = getTradeConfig(tradeCode);
      if(tradeParam == null)
         return null;
      if(tradeParam.paramList == null || tradeParam.paramList.get("header") == null)
         return null;
      String[] headerList = SysFunction.splitString((String)tradeParam.paramList.get("header"),"|");
      if(headerList == null || headerList.length < 11)
         return null;
      CB8583PacketHeader header = new CB8583PacketHeader(headerList[0],headerList[1],tradeParam.tradeToCode,tradeConfig.acqInstID,
                                       tradeConfig.termID,traceNo,
                                       headerList[2],cardNo,headerList[3],headerList[4],headerList[5],
                                       headerList[6],headerList[7]);
      ArrayList retHeader = new ArrayList();
      retHeader.add(header.getPacketHeader());
      retHeader.add(headerList);
      System.out.println("Packet Header:"+new String(header.getPacketHeader())+" Header len:"+header.getPacketHeader().length);
      return retHeader;
  }

  public static byte[] pack8583(String tradeCode,TradePacket requestPack)throws PacketException{
      String[] s =null;
      byte[] srcvalue = null;
      byte[] desvalue = null;
      String cardNo = null;
      byte[] headerBuf = null;
      byte[] bodyBuf = new byte[CB8583Const.MAX_PACKET_LEN];
      byte[] fieldByteArray = null;
      byte[] destArrayBuf = null;
      DataField tmpDataField = null;
      CB8583Bitmap packetBitmap = new CB8583Bitmap();
      Map fieldDataList = new HashMap();
      ArrayList retHeader = null;
      int fieldindex = 0;
      int start = 0;
      int domainNo = 0;
      int startPos = 0;
      int fieldLen = 0;
      int convertMethod = 0;
      int bufferCurPos = 0;
      String[] ruleList = null;
      String[] fieldList = null;
      try{
        System.out.println("doPack..............");
        TradeParam tradeParam = getTradeConfig(tradeCode);
        if(tradeParam == null || tradeParam.paramList == null)
           throw new PacketException("沒有配置交易");
        Map paramList = tradeParam.paramList;
        String inParam = new StringBuffer("|").append((String)paramList.get("in")).toString();
        byte[] tmpDataFieldValue = null;
        byte[] tmpArrayByte = null;
        for(int i = 0; i < requestPack.getSize(); i++){
          tmpDataField = (DataField) requestPack.getDomain(i);
          tmpArrayByte = null;
          //System.out.println("Pack field data:"+new String(tmpDataField.value)+" Rule:"+tmpDataField.fieldRule);
          if (tmpDataField == null)
            continue;
          if (tmpDataField.getValue() == null)
            throw new PacketException("打包出錯(cuò),空字段");
          if (tmpDataField.getValue().length <= 0)
            throw new PacketException("打包出錯(cuò),空字段");
          fieldList = SysFunction.splitString(new String(tmpDataField.value).trim(), "|");
          int paramStartIndex = inParam.indexOf("|"+fieldList[0]);
          if(paramStartIndex < 0){
            throw new PacketException("輸入?yún)?shù)沒有配置");
          }
          int paramEndIndex = inParam.indexOf("|",paramStartIndex+1);//取第一個(gè)|前面的數(shù)據(jù)
          if(paramEndIndex >= 0){
           // System.out.println("Config field param:"+inParam.substring(paramStartIndex+1,paramEndIndex));
            ruleList = SysFunction.splitString(inParam.substring(paramStartIndex+1,paramEndIndex), ":");
          }else{
           // System.out.println("Config field param:"+inParam.substring(paramStartIndex+1));
            ruleList = SysFunction.splitString(inParam.substring(paramStartIndex+1),":");
          }
          domainNo = Integer.parseInt(ruleList[0]);
          startPos = Integer.parseInt(ruleList[1]);
          fieldLen = Integer.parseInt(ruleList[2]);
          convertMethod = Integer.parseInt(ruleList[3]);
          tmpDataFieldValue = fieldList[1].getBytes();
          tmpDataField.fieldRule = new StringBuffer(ruleList[0]).append(":").append(ruleList[1]).toString();
          if (domainNo == 2)
            cardNo = new String(tmpDataFieldValue);
          if (convertMethod != 0) {
            //System.out.println("Convert field Value:"+tmpDataFieldValue);
            if(convertMethod != 888)
              tmpDataFieldValue = TradeDataConvert.convertData(tmpDataFieldValue,convertMethod,fieldLen);
            else if(convertMethod == 889){
              if(ruleList[4].equals(new String(tmpDataFieldValue)))
                  tmpDataFieldValue = ruleList[4].getBytes();
            }
            else
              tmpDataFieldValue = ruleList[4].getBytes();
           // System.out.println("Convert field Value1:"+tmpDataFieldValue);
          }
          if (fieldDataList.containsKey(ruleList[0])) {
            tmpArrayByte = (byte[]) fieldDataList.get(ruleList[0]);
            int tmpFieldLen = startPos + tmpDataFieldValue.length;
            if (tmpArrayByte.length < tmpFieldLen) {
              tmpArrayByte = SysFunction.changeMemLen(tmpArrayByte, tmpFieldLen);
            }
            System.arraycopy(tmpDataFieldValue, 0, tmpArrayByte, startPos,
                             tmpDataFieldValue.length);
            fieldDataList.put(ruleList[0], tmpArrayByte);
          }
          else {
            //System.out.println("====Rule:"+ruleList[0]+" Value:"+new String(tmpDataFieldValue));
            if (startPos == 0) {
              if (domainNo != 48)
                fieldDataList.put(ruleList[0], tmpDataFieldValue);
              else {
                if (domainNo == 48) {
                  tmpArrayByte = new byte[86];
                  CB8583ConvertMethod.clearByteArray(tmpArrayByte, (byte) 0x20);
                }
                System.arraycopy(tmpDataFieldValue, 0, tmpArrayByte, 0,
                                 tmpDataFieldValue.length);
                fieldDataList.put(ruleList[0], tmpArrayByte);
              }
            }else {
              if (domainNo == 48) {
                tmpArrayByte = new byte[86];
                CB8583ConvertMethod.clearByteArray(tmpArrayByte, (byte) 0x20);
              }
              else
                tmpArrayByte = new byte[startPos + tmpDataFieldValue.length];
              System.arraycopy(tmpDataFieldValue, 0, tmpArrayByte, startPos,
                               tmpDataFieldValue.length);
              fieldDataList.put(ruleList[0], tmpArrayByte);
            }
          }
          packetBitmap.openBit(domainNo);
          ruleList = null;
          fieldList = null;
        }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影免费提供在线观看| www国产精品av| 裸体健美xxxx欧美裸体表演| 国产精品美女一区二区在线观看| 欧美日韩一卡二卡三卡| 成人性生交大片免费看中文| 日本不卡不码高清免费观看| 亚洲日本一区二区| 久久亚洲一级片| 欧美日韩国产123区| 波多野结衣精品在线| 麻豆精品一区二区三区| 亚洲精品视频在线观看网站| 久久久久久97三级| 日韩视频国产视频| 欧美日韩一区高清| 91久久精品一区二区二区| 国产精品18久久久| 美国av一区二区| 香蕉加勒比综合久久| 1024成人网| 日本一区二区三区dvd视频在线| 日韩欧美一区二区视频| 91精品欧美久久久久久动漫 | 免费人成在线不卡| 亚洲自拍偷拍九九九| 中文字幕在线观看不卡| 国产欧美精品在线观看| 2023国产精华国产精品| 日韩精品一区二区三区在线观看| 777奇米四色成人影色区| 在线免费观看日本一区| 91黄视频在线| 91丨九色丨黑人外教| av在线播放一区二区三区| 丁香婷婷综合五月| 国产99久久久国产精品| 国产精品亚洲第一| 国产成人在线观看| 国产成人在线色| 国产**成人网毛片九色 | 美美哒免费高清在线观看视频一区二区| 一区二区三区四区激情| 亚洲免费观看视频| 亚洲精品高清在线| 亚洲制服丝袜av| 亚洲尤物视频在线| 首页国产欧美久久| 日韩国产欧美一区二区三区| 蜜桃av一区二区| 精品一区免费av| 国产精品乡下勾搭老头1| 国产suv一区二区三区88区| 成人深夜视频在线观看| 不卡的av电影| 91激情五月电影| 欧美老年两性高潮| 日韩欧美国产1| 久久久激情视频| 亚洲人成网站精品片在线观看| 亚洲色图欧美偷拍| 五月天久久比比资源色| 另类综合日韩欧美亚洲| 国产酒店精品激情| 97国产一区二区| 欧美美女喷水视频| 精品成人一区二区三区四区| 日本一区二区综合亚洲| 亚洲精品视频免费看| 日精品一区二区三区| 国产在线精品一区二区不卡了 | 欧美一区二区精品在线| 欧美成人a∨高清免费观看| 国产亚洲欧美日韩日本| 1000精品久久久久久久久| 亚洲一二三区不卡| 精品一区二区三区免费毛片爱| 国产传媒一区在线| 在线观看三级视频欧美| 日韩精品一区二区三区在线| 中文字幕一区二区日韩精品绯色| 亚洲成人综合网站| 国产成人av影院| 欧美日韩一区久久| 国产日韩成人精品| 亚洲成av人片在www色猫咪| 国产在线视频精品一区| 一本色道久久综合亚洲91| 欧美一区二区三区在线电影 | 久久久一区二区三区捆绑**| 亚洲精品写真福利| 国产综合一区二区| 欧美日韩午夜影院| 日本一区免费视频| 日本不卡视频一二三区| 91麻豆精品视频| 久久夜色精品国产欧美乱极品| 亚洲一区二区综合| 成人污视频在线观看| 91精品久久久久久久久99蜜臂| 国产精品免费视频观看| 免费成人在线观看视频| 91福利在线播放| 国产精品污www在线观看| 狂野欧美性猛交blacked| 欧美综合一区二区| 中文字幕亚洲区| 国产一区二区免费视频| 51久久夜色精品国产麻豆| 亚洲欧美日韩国产成人精品影院| 国内成人自拍视频| 91精品国产一区二区三区香蕉| 国产精品国产三级国产有无不卡 | 久久一夜天堂av一区二区三区| 亚洲亚洲人成综合网络| 99久久精品国产一区二区三区| 精品奇米国产一区二区三区| 午夜精品久久一牛影视| 日本久久精品电影| 国产精品久久三| 国产电影一区二区三区| 久久综合久久鬼色中文字| 免费人成在线不卡| 制服丝袜在线91| 亚洲一二三级电影| 欧美系列在线观看| 亚洲午夜私人影院| 在线观看国产精品网站| 亚洲日本一区二区| 91论坛在线播放| 亚洲女同一区二区| 色综合久久99| 亚洲男人天堂一区| 欧洲国产伦久久久久久久| 亚洲欧洲综合另类| 91香蕉视频污| 一区二区高清在线| 欧美中文字幕一区二区三区| 一区二区三区欧美亚洲| 91黄色免费观看| 亚洲综合激情网| 欧美日高清视频| 日本女优在线视频一区二区| 欧美一级生活片| 久久精品国产亚洲高清剧情介绍 | 99re热视频这里只精品| 国产精品电影一区二区| 91一区一区三区| 亚洲精品免费一二三区| 欧洲一区在线观看| 亚洲aaa精品| 日韩欧美国产午夜精品| 国精产品一区一区三区mba视频| 久久综合久久综合亚洲| www.在线成人| 一区二区欧美视频| 欧美一区二区在线不卡| 精品夜夜嗨av一区二区三区| 久久久99久久| 色猫猫国产区一区二在线视频| 一区二区久久久久| 欧美大白屁股肥臀xxxxxx| 国产精品资源站在线| 亚洲欧洲国产日本综合| 欧美性色aⅴ视频一区日韩精品| 视频在线观看91| 久久久久久久免费视频了| 北条麻妃一区二区三区| 午夜影视日本亚洲欧洲精品| 精品少妇一区二区| 99久免费精品视频在线观看| 亚洲成人动漫在线免费观看| 久久久一区二区三区| 日本高清不卡视频| 美女视频一区二区| 中文字幕欧美三区| 欧美军同video69gay| 国产精品99久久久| 一个色在线综合| 亚洲精品一区二区三区香蕉| 91在线国产观看| 久久99久久精品欧美| 中文字幕一区二区三区在线不卡| 欧美一级午夜免费电影| 成人av免费在线| 青椒成人免费视频| 中文字幕中文字幕中文字幕亚洲无线| 欧美日韩在线精品一区二区三区激情 | 欧美电影免费观看高清完整版在| jlzzjlzz亚洲日本少妇| 丝袜美腿成人在线| 亚洲精品视频在线看| 26uuu国产一区二区三区| 91久久国产最好的精华液| 精品写真视频在线观看| 亚洲va韩国va欧美va| 国产精品国产a级| 欧美精品一区二区三区很污很色的| 97久久精品人人做人人爽50路| 久久99热这里只有精品|