//package com.carolinacustom;
/* Decompiled by Mocha from UPS_Shipping_Calculator.class */
/* Originally compiled from UPS_Shipping_Calculator.java */
//import com.allaire.cfx.*;
import java.io.*;
import java.net.Socket;
import javax.net.SocketFactory;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
public class UPS_Shipping_Calculator
{
public static final String UPS_NEXT_DAY_AIR = "01";
public static final String UPS_2ND_DAY_AIR = "02";
public static final String UPS_GROUND = "03";
public static final String UPS_WORLDWIDE_EXPRESS = "07";
public static final String UPS_WORLDWIDE_EXPEDITED = "08";
public static final String UPS_STANDARD = "11";
public static final String UPS_3_DAY_SELECT = "12";
public static final String UPS_NEXT_DAY_AIR_SAVER = "13";
public static final String UPS_NEXT_DAY_EARLY_AM = "14";
public static final String UPS_WORLDWIDE_EXPRESS_PLUS = "54";
public static final String UPS_2ND_DAY_AIR_AM = "59";
public static final String UPS_EXPRESS_SAVER = "65";
public String server;
public int port;
public String protocol;
private String UPS_request;
private String UPS_response;
private int num_rated_shipments;
String[] service_code;
float[] shipping_cost;
//-----------------------------------------------------------------------------------
public UPS_Shipping_Calculator()
{
server="www.ups.com";
port=443;
protocol="HTTPS";
}
//-----------------------------------------------------------------------------------
public UPS_Shipping_Calculator(String new_server, int new_port, String new_protocol)
{
server=new_server;
port=new_port;
protocol=new_protocol;
}
//-----------------------------------------------------------------------------------
public void set_server(String new_server)
{
server=new_server;
}
//-----------------------------------------------------------------------------------
public void set_port(int new_port)
{
port=new_port;
}
//-----------------------------------------------------------------------------------
public void set_protocol(String new_protocol)
{
protocol=new_protocol;
}
//-----------------------------------------------------------------------------------
public void communicate_request_to_UPS()
throws Exception
{
System.out.println(server);
if (protocol.equals("HTTP"))
doHTTPSocket();
else if (protocol.equals("Other"))
doOtherSocket();
else
{
if (!protocol.equals("HTTPS"))
throw new Exception("Invalid value for PROTOCOL Attribute. Only HTTP, HTTPS and Other are valid values.");
doHTTPSSocket();
}
}
//-----------------------------------------------------------------------------------
void doHTTPSocket()
throws Exception
{
BufferedReader bufferedReader;
UPS_response = "";
Socket socket = new Socket(server, port);
PrintWriter printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
printWriter.println(UPS_request);
printWriter.println();
printWriter.flush();
String string;
for (bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); (string = bufferedReader.readLine()) != null; )
UPS_response = UPS_response + string + "\r\n";
bufferedReader.close();
printWriter.close();
socket.close();
}
//-----------------------------------------------------------------------------------
void doOtherSocket()
throws Exception
{
BufferedReader bufferedReader;
UPS_response = "";
Socket socket = new Socket(server, port);
PrintWriter printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
printWriter.println(UPS_request);
printWriter.println();
printWriter.flush();
String string;
for (bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); (string = bufferedReader.readLine()) != null; )
UPS_response = UPS_response + string + "\r\n";
bufferedReader.close();
printWriter.close();
socket.close();
}
//-----------------------------------------------------------------------------------
void doHTTPSSocket()
throws Exception
{
BufferedReader bufferedReader;
UPS_response = "";
SSLSocketFactory sSLSocketFactory = (SSLSocketFactory)SSLSocketFactory.getDefault();
SSLSocket sSLSocket = (SSLSocket)sSLSocketFactory.createSocket(server, port);
sSLSocket.startHandshake();
PrintWriter printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sSLSocket.getOutputStream())));
printWriter.println(UPS_request);
printWriter.println();
printWriter.flush();
String string;
for (bufferedReader = new BufferedReader(new InputStreamReader(sSLSocket.getInputStream())); (string = bufferedReader.readLine()) != null; )
UPS_response = UPS_response + string + "\r\n";
bufferedReader.close();
printWriter.close();
sSLSocket.close();
}
//-----------------------------------------------------------------------------------
public void set_UPS_request(String shipto_zipcode, String shipto_country, String cart_weight)
{
String crln = new String("\r\n");
String double_quote = new String("\"");
String http_header;
String xml_request;
xml_request =
"" + crln +
"" + crln +
" 4B8431F95EDBD4B0" + crln +
" scdemarc" + crln +
" d0gEYE$!" + crln +
"" + crln +
"" + crln +
"" + crln +
" " + crln +
" " + crln +
" Rating and Service" + crln +
" 1.0001" + crln +
" " + crln +
" Rate" + crln +
" shop" + crln +
" " + crln +
" " + crln +
" 01
" + crln +
" " + crln +
" " + crln +
" " + crln +
" " + crln +
" 28328" + crln +
" US" + crln +
" " + crln +
" " + crln +
" " + crln +
" " + crln +
" " + shipto_zipcode + "" + crln +
" " + shipto_country + "" + crln +
" " + crln +
" " + crln +
" " + crln +
" " + crln +
" 02
" + crln +
" " + crln +
" " + crln +
" " + cart_weight + "" + crln +
" " + crln +
" LBS
" + crln +
" " + crln +
" " + crln +
" " + crln +
" " + crln +
" " + crln;
http_header = "POST /ups.app/xml/Rate HTTP/1.0" + crln +
"Content-Length: " + xml_request.length() + crln +
"Content-type: application/x-www-form-urlencoded" + crln + crln;
UPS_request = http_header + xml_request;
}
//-----------------------------------------------------------------------------------
public String get_UPS_request()
{
return(UPS_request);
}
//-----------------------------------------------------------------------------------
public String get_UPS_response()
{
return(UPS_response);
}
//-----------------------------------------------------------------------------------
public void extract_rated_shipments_from_UPS_response()
{
int result, search_index=0;
int n, begin_index, end_index;
num_rated_shipments=0;
result = UPS_response.indexOf("", search_index);
while(result != -1)
{
num_rated_shipments++;
search_index = result + 1;
result = UPS_response.indexOf("", search_index);
}
service_code = new String[num_rated_shipments];
shipping_cost = new float[num_rated_shipments];
search_index=0;
for (n=0; n", search_index);
begin_index = UPS_response.indexOf("", search_index) + 6;
end_index = UPS_response.indexOf("
", search_index);
service_code[n] = UPS_response.substring(begin_index, end_index);
search_index = UPS_response.indexOf("", search_index);
begin_index = UPS_response.indexOf("", search_index) + 15;
end_index = UPS_response.indexOf("", search_index);
shipping_cost[n] = (Float.valueOf(UPS_response.substring(begin_index, end_index))).floatValue();
}
}
//-----------------------------------------------------------------------------------
public int get_num_rated_shipments()
{
return(num_rated_shipments);
}
//-----------------------------------------------------------------------------------
public String get_service_code(int n)
{
return(service_code[n]);
}
//-----------------------------------------------------------------------------------
public float get_shipping_cost(int n)
{
return(shipping_cost[n]);
}
//-----------------------------------------------------------------------------------
public float get_shipping_cost(String desired_service_code)
{
int n;
for (n=0; n