package com.banking.xc.utils.webService.request;
import com.banking.xc.utils.Log;
import com.banking.xc.utils.Md5Encrypt;
import com.banking.xc.utils.webService.request.flight.FlightRequest;
import com.banking.xc.utils.webService.request.flight.flightproduct.FlightProductRequest;
import com.banking.xc.utils.webService.util.WebServiceConstant;
public abstract class XCRequest {
private static String whole_timeStamp;//时间戳
public final String TAG = "XCRequest";
//public abstract void putParams();
public abstract String getPrams();
public abstract String getRequesstBigType();
public abstract String getRequestType();
/**
* 检查参数是否合法
* @return
*/
public abstract Boolean checkParams();
public String getWholeUrl(){
if(this instanceof FlightRequest){
return WebServiceConstant.BASE_URL+"/"+getRequesstBigType()+"/"+"DomesticFlight/"+getRequestType()+".asmx";
}else if(this instanceof FlightProductRequest){
return WebServiceConstant.BASE_URL+"/"+getRequesstBigType()+"/"+"FlightProduct/"+getRequestType()+".asmx";
}
else{
return WebServiceConstant.BASE_URL+"/"+getRequesstBigType()+"/"+getRequestType()+".asmx";
}
}
public static String getTimeStamp(){
whole_timeStamp = String.valueOf(System.currentTimeMillis()/1000);
return whole_timeStamp;
}
public String getSignature(){
String result = (MyMd5Encrypt(whole_timeStamp+WebServiceConstant.ALLIANCEID+MyMd5Encrypt(WebServiceConstant.API_KEY).toUpperCase()+WebServiceConstant.SID+getRequestType())).toUpperCase();
return result;
}
public static String getStaticSignature(String requestType){
String result = (MyMd5Encrypt(whole_timeStamp+WebServiceConstant.ALLIANCEID+MyMd5Encrypt(WebServiceConstant.API_KEY).toUpperCase()+WebServiceConstant.SID+requestType)).toUpperCase();
return result;
}
public static String MyMd5Encrypt(String s){
return Md5Encrypt.md5(s);
}
public String getRequestString(){
getTimeStamp();
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\"?>"+
"<Request><Header AllianceID=\""+WebServiceConstant.ALLIANCEID+"\" SID=\""+WebServiceConstant.SID+"\" TimeStamp=\""+whole_timeStamp+"\" RequestType=\""+getRequestType()+"\" Signature=\""+getSignature()+"\" />");
sb.append(getPrams());
sb.append("</Request>");
final String result = sb.toString();
if(Log.D)
{
Log.d(TAG,result);
}
System.out.println("XC Request"+result);
return result;
}
}