⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 account.jsp

📁 陕西电信sp客户端
💻 JSP
字号:
<%@page contentType="text/html; charset=GBK" %>
<%@page import="com.onewaveinc.portalman.webpro.*"%>
<%@page import="com.onewaveinc.portalman.webpro.entity.*"%>
<%@page import="java.util.Date"%>
<%!
	public boolean checkTransactionID(HttpSession session,String newid){
		String oldid = (String)session.getAttribute("sessionTransactionId");
		if(newid==null){
			return true;
		}
		if(oldid==null){
			//用户第一次消费,将TransactionId存session以便下次比较
			session.setAttribute("sessionTransactionId",newid);
			return true;
		}

		try{
			long old_id = Long.parseLong(oldid);
			long new_id = Long.parseLong(newid);
			if(new_id > old_id){
				session.removeAttribute("sessionTransactionId");
				session.setAttribute("sessionTransactionId",newid);
				return true;
			}else{
				return false;
			}
		}catch(Exception e){
			return true;
		}
	}
	public String checkSuite(OWAuthorizeResult result){
		if("true".equalsIgnoreCase(result.getErrorCode())){
			String message=result.getMessage();
			if(message!=null && message.indexOf("8000,")!=-1){
				return message.substring(5);
			}
		}
		return null;
	}
%>

<%
	String resultstr = (String)session.getAttribute("sessionAuthorizeResult");
	String vnetloginname = (String)session.getAttribute("sessionVnetLoginName");
	session.removeAttribute("sessionAuthorizeResult");
	if(vnetloginname == null  | resultstr==null){
		out.println("<p align='center'><font color='#FF0000'>非法请求,请退出重试!</font></p>");
		return;
	}

	//用户在ICP上的登陆名,将显示在用户详单中,也可在此写注释
	String icpLoginName = "该服务仅供测试";
	//ICP在Vnet上发表的产品描述,如没有设空
	String productInfo = "测试服务";

	//将接收到的结果解析出来
	OWAuthentication auth = WebProManager.getOWAuthentication();
	OWAuthorizeResult result = auth.getOWAuthorizeResultObject(resultstr);
	System.out.println(result);
	//检查用户是否复制了授权字符串
	if(!checkTransactionID(session,result.getTransactionID())){
		out.println("发现错误:授权结果字符串被用户复制再使用");
		return;
	}
	//检查用户是否为套餐用户
	String suitename = checkSuite(result);
	if(suitename!=null){
		//为套餐用户,做相应的处理。
		System.out.println("该用户已订购了套餐:"+ suitename);
	}

	//生成计费Entity
	OWAccountingRequest acrequest = new OWAccountingRequest();
	//“1” 代表包月 “0” 非包月
	acrequest.setAccountingType(0);
	//客户ICP登录名, String 类型, 最长64位
	acrequest.setIcpLoginName(icpLoginName);
	//产品信息, String 类型, 最长64位
	acrequest.setProductInfo(productInfo);
	//产品计费开始使用时间
	acrequest.setStartTime(new Date());
	//产品计费结束使用时间
	acrequest.setEndTime(new Date());
	//全局唯一的交易号。
	acrequest.setTransactionId(result.getTransactionID());
	//Vnet 客户统一登录名
	acrequest.setVnetLoginName(vnetloginname);
	try{
		//调用收费接口
		OWAccountingResult result2 = WebProManager.getOWAccounting().setAccountingInfo(acrequest);
		if(!("true".equalsIgnoreCase(result2.getErrorCode()))){
			out.println("扣费时发现错误:" + result2.getMessage());
			return;
		}
	}catch(Exception e){
		e.printStackTrace();
		out.println("扣费时发现错误:" + e.toString());
		return;
	}
 %>
<html><head><title></title></head><body>
收费记录已保存,可以消费服务了。<BR>到互联星空上可以查到本次消费的详单。<BR>
<%
	if(suitename!=null){
		//为套餐用户,做相应的处理。
		out.println("该用户已订购了套餐:"+ suitename);
	}
%>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -