package com.finance.iso.iso8583.jpos.util;
import java.io.UnsupportedEncodingException;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOUtil;
import com.finance.iso.iso8583.mediator.XLinkISO8583Constant;
public class ISOMsgUtils {
public static ISOMsg addTransportHeader(ISOMsg request){
try {
int length = request.pack().length;
// char[] d=new char[2];
// d[1]= (char)length;
//
// char[] chars = d;
char[] chars=new char[2];
chars[1]=(char)length;
// byte[] bytes = new byte[chars.length*2];
// for(int i=0;i<chars.length;i++) {
// bytes[i*2] = (byte) (chars[i] >> 8);
// bytes[i*2+1] = (byte) chars[i];
// }
// char[] chars2 = new char[bytes.length/2];
// for(int i=0;i<chars2.length;i++) {
// chars2[i] = (char) ((bytes[i*2] << 8) + (bytes[i*2+1] & 0xFF));
// }
String password = new String(chars);
request.setHeader(password.getBytes("US-ASCII"));
return request;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ISOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
return request;
}
}
public static String generateField41(String sourceAccountNo){
int length = sourceAccountNo.length();
length=length-6;
return XLinkISO8583Constant.REQUEST_FIELD_41+sourceAccountNo.substring(length);
}
public static String generateField42(String sourceAccountNo){
try {
return XLinkISO8583Constant.REQUEST_FIELD_42+ISOUtil.padleft(sourceAccountNo, 13, '0');
} catch (ISOException e) {
e.printStackTrace();
return null;
}
}
public static String generateField43(String sourceAccountNo){
String field41 = generateField41(sourceAccountNo);
int length=40-field41.length();
try {
return field41+ISOUtil.padleft(XLinkISO8583Constant.REQUEST_FIELD_43, length, ' ');
} catch (ISOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String generateField41 = generateField41("1234567890");
System.out.println(generateField41);
System.out.println(generateField42("1234567890"));
System.out.println(generateField43("1234567890"));
}
}