?? getvnetdr.jsp
字號:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.security.*"%>
<%@ page import="java.net.*"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%!
class VnetDR {
private long transactionID;
private String vnetLoginName;
private long totalCharge;
private java.util.Date authorizationTime;
private java.util.Date ratingTime;
private long ROWID;
private long suiteID;
public void setTransactionID(long transactionID) {
this.transactionID = transactionID;
}
public long getTransactionID() {
return transactionID;
}
public void setVnetLoginName(String vnetLoginName) {
this.vnetLoginName = vnetLoginName;
}
public String getVnetLoginName() {
return vnetLoginName;
}
public void setTotalCharge(long totalCharge) {
this.totalCharge = totalCharge;
}
public long getTotalCharge() {
return totalCharge;
}
public void setAuthorizationTime(java.util.Date authorizationTime) {
this.authorizationTime = authorizationTime;
}
public java.util.Date getAuthorizationTime() {
return authorizationTime;
}
public void setRatingTime(java.util.Date ratingTime) {
this.ratingTime = ratingTime;
}
public java.util.Date getRatingTime() {
return ratingTime;
}
public void setROWID(long ROWID) {
this.ROWID = ROWID;
}
public long getROWID() {
return ROWID;
}
public void setSuiteID(long suiteID) {
this.suiteID = suiteID;
}
public long getSuiteID() {
return suiteID;
}
public String toString(){
return "詳單:TransactionID="+this.getTransactionID()+" ,VnetLoginName="+this.getVnetLoginName()+" ,TotalCharge="+this.getTotalCharge()+" ,AuthorizationTime="+this.getAuthorizationTime()+" ,RatingTime="+this.getRatingTime()+" ,SuiteID="+this.getSuiteID()+" ,ROWID="+this.getROWID();
}
}
public static String byte2HEX(byte b) {
return (""+"0123456789ABCDEF".charAt(0xf&b>>4)+"0123456789ABCDEF".charAt(b&0xF));
}
public static byte stringHEX2bytes(String str) {
return (byte) ("0123456789ABCDEF".indexOf(str.substring(0,1))*16 + "0123456789ABCDEF".indexOf(str.substring(1)));
}
public static String md5bytes2string(byte[] bytes){
String result = "";
for(int i=0; i<bytes.length; i++){
result += byte2HEX(bytes[i]);
}
return result;
}
public static byte[] md5string2bytes(String str){
byte[] b = new byte[str.length()/2];
for(int i=0; i<b.length; i++){
String s = str.substring(i*2,i*2+2);
b[i] = stringHEX2bytes(s);
}
return b;
}
/**
* 從response字符串中,取出key字段的值,如果key指定的字段不存在,返回null
* @param key -- 字段名稱
* @param response -- Time接口返回的內(nèi)容。
* @return 字段的值,如果字段不存在返回null.
*/
public static String getAttribue(String key, String response)
{
String POSTFIX = "=\"";
String RIGTH_PARENTHESIS = "\"";
String field = key + POSTFIX;
String result = null;
if(response == null || response.trim().length() == 0)
{
return null;
}
if(response.indexOf(field) < 0)
{
return null;
}
int pre = response.indexOf(field) + field.length();
int post = response.indexOf(RIGTH_PARENTHESIS, pre);
if(post < 0)
{
return null;
}
result = response.substring(pre, post);
if(result != null && result.trim().length() == 0)
{
return null;
}
return result;
}
public static void getVnetDR(VnetDR vnetdr,String line){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String TransactionID = getAttribue("TransactionID",line);
if(TransactionID!=null && TransactionID.length()>0){
try {
vnetdr.setTransactionID(Long.parseLong(TransactionID));
}catch (Exception ex) {
ex.printStackTrace();
}
}
vnetdr.setVnetLoginName(getAttribue("VnetLoginName",line));
String TotalCharge = getAttribue("TotalCharge",line);
if(TotalCharge!=null && TotalCharge.length()>0){
try {
vnetdr.setTotalCharge(Long.parseLong(TotalCharge));
}catch (Exception ex) {
ex.printStackTrace();
}
}
String AuthorizationTime = getAttribue("AuthorizationTime",line);
if(AuthorizationTime!=null && AuthorizationTime.length()>0){
try {
vnetdr.setAuthorizationTime(dateFormat.parse(AuthorizationTime));
}catch (Exception ex) {
ex.printStackTrace();
}
}
String RatingTime = getAttribue("RatingTime",line);
if(RatingTime!=null && RatingTime.length()>0){
try {
vnetdr.setRatingTime(dateFormat.parse(RatingTime));
}catch (Exception ex) {
ex.printStackTrace();
}
}
String suiteid=getAttribue("SuiteID",line);
if(suiteid!=null && suiteid.length()>0){
try {
vnetdr.setSuiteID(Long.parseLong(suiteid));
}catch (Exception ex) {
ex.printStackTrace();
}
}
String ROWID = getAttribue("ROWID",line);
if(ROWID!=null && ROWID.length()>0){
try {
vnetdr.setROWID(Long.parseLong(ROWID));
}catch (Exception ex) {
ex.printStackTrace();
}
}
}
%>
<%
String starttime = request.getParameter("starttime");
String endtime = request.getParameter("endtime");
if(starttime == null || starttime.length()==0){
//初始頁面
%>
<html>
<head>
<title>
取得對帳單
</title>
</head>
<body>
<form method="post" name="form1" action="getvnetdr.jsp">
取得對帳單
開始時間<input name="starttime" type="text" value="20030701000000">
結(jié)束時間<input name="endtime" type="text" value="20030708000000">
詳單總數(shù)<input name="totalcount" type="text" value="16">
詳單總計(厘)<input name="totalfee" type="text" value="0">
<input name="endtime" type="submit" >
</form>
</body>
</html>
<%
}else {
String ICPCode="test";
String ICPKey="7EF36F3A638D3066";
String seed = ICPCode + ICPKey;
MessageDigest md = MessageDigest.getInstance("MD5");
String ICPVerifyCode = md5bytes2string(md.digest(seed.getBytes()));
String serverVerifyURL = "http://gd.chinavnet.com:8590/aaa/v20/VnetDRInterface.jsp";
serverVerifyURL += "?icpcode=" + ICPCode + "&icpverifycode=" + ICPVerifyCode + "&starttime=" + request.getParameter("starttime") + "&endtime=" + request.getParameter("endtime");
serverVerifyURL += "&totalfee=" + request.getParameter("totalfee") + "&totalcount=" + request.getParameter("totalcount");
System.out.println(serverVerifyURL);
//invoke jsp pages here
URL aurl = new URL(serverVerifyURL);
BufferedReader in = new BufferedReader(new InputStreamReader(aurl.openStream()));
String line=null;
String errormessage=null;
String result=null;
String totalcount=null;
String totalfee=null;
Vector vnerdrs = new Vector();
while((line=in.readLine())!=null){
System.out.println(line);
if(line.length()>0 && line.indexOf("Response")!=-1 && line.indexOf("Result")!=-1){
errormessage=getAttribue("ErrorMessage",line);
result=getAttribue("Result",line);
totalcount =getAttribue("TotalCount",line);
totalfee =getAttribue("TotalFee",line);
if("3000".equals(result)||"1000".equals(result)){
//發(fā)現(xiàn)錯誤或?qū)こ晒? break;
}
}
if(line.length()>0 && line.indexOf("VnetDR")!=-1){
//取帳單,存到Vector里面
VnetDR vnetdr= new VnetDR();
getVnetDR(vnetdr,line);
vnerdrs.addElement(vnetdr);
}
}
if("3000".equals(result)){
out.println("發(fā)現(xiàn)錯誤,錯誤信息為:" + errormessage);
}else if("1000".equals(result)){
out.println("對帳成功,詳單總數(shù):" + totalcount + ",詳單總計(厘)" + totalfee );
}else if("2000".equals(result)){
out.println("對帳失敗,返回的詳單總數(shù):" + totalcount + ",返回的詳單總計(厘)" + totalfee+"<BR>");
out.println("取得"+ vnerdrs.size() + "條詳單:<BR><BR>" );
for(int i=0;i<vnerdrs.size();i++){
out.println(vnerdrs.get(i) + "<BR>");
}
}else{
out.println("無發(fā)失敗返回結(jié)果");
}
}
%>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -