📄 logonandcheckbypayaccount.jsp
字号:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.security.*"%>
<%@ page import="java.net.URLEncoder"%>
<%!
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;
}
public boolean checkValidate(String vnetloginname,String token,String verifycode){
try{
String seed = token + vnetloginname + "vnetvalidate";
MessageDigest md = MessageDigest.getInstance("MD5");
String mdresult = md5bytes2string(md.digest(seed.getBytes()));
return mdresult.equalsIgnoreCase(verifycode);
}catch(Exception e){
return false;
}
}
public boolean checkValidateForPayaccount(String vnetloginname,String token,String verifycode,String paytype,String payaccountverifyresult,String payaccountno){
try{
String seed = token + vnetloginname + paytype + payaccountno + payaccountverifyresult + "vnetvalidate";
MessageDigest md = MessageDigest.getInstance("MD5");
String mdresult = md5bytes2string(md.digest(seed.getBytes()));
return mdresult.equalsIgnoreCase(verifycode);
}catch(Exception e){
return false;
}
}
%>
<%
//绑定账号类型类型,1为163帐户,2为ADSL帐户,3为现金帐户,4为促销卡帐户,5为业务卡帐户,6为套餐用户
String paytype="6";
//本网页的网址,从Vnet网站跳回时用
String return_url="http://localhost:9000/demoicp/LogonAndCheckByPayAccount.jsp";
//取传回的参数
String payaccountverifyresult = request.getParameter("payaccountverifyresult");
String payaccountno = request.getParameter("payaccountno");
if(payaccountno!=null){
//如为套餐,会返回中文,需要解码
payaccountno = java.net.URLDecoder.decode(payaccountno);
}
String vnetloginname = request.getParameter("vnetloginname");
String token = request.getParameter("token");
String verifycode = request.getParameter("verifycode");
if(payaccountverifyresult == null || payaccountverifyresult.length()==0){
//初始页面
String jumpURL = com.onewaveinc.portalman.webpro.WebProManager.getAuthenticationJumpURL()+"?payaccount_type=" + paytype;
jumpURL += "&return_url="+URLEncoder.encode(return_url);
out.println("绑定账号类型payaccount_type(1为163帐户,2为ADSL帐户,3为现金帐户,4为促销卡帐户,5为业务卡帐户,6为套餐用户):<BR>");
out.println("<A href='"+jumpURL+"'>单击此处跳转到Vnet登陆页面</A><BR><BR><A href='http://gd.chinavnet.com/' target='_blank'>单击此处跳转到Vnet主页</A></form></body>");
}else if("success".equalsIgnoreCase(payaccountverifyresult)){
//检查校验码是否正确,如果不正确,说明是用户修改了跳回时的参数值
if(checkValidateForPayaccount(vnetloginname,token,verifycode,paytype,payaccountverifyresult,payaccountno)){
out.println("绑定账号验证通过,Vnet用户名为:" + vnetloginname + ",绑定的账号为:"+ payaccountno);
}else{
out.println("绑定账号验证通过,但校验码不正确<BR>");
}
}else{
//检查校验码是否正确,如果不正确,说明是用户修改了跳回时的参数值
if(checkValidate(vnetloginname,token,verifycode)){
out.println("绑定账号验证不通过,该Vnet用户未绑定类型为"+paytype+"的账号,Vnet用户名为:" + vnetloginname);
}else{
out.println("绑定账号验证不通过,校验码也不正确<BR>");
}
}
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -