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

📄 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.*"%>
<%!
        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 = "测试服务";
        //ICP在Vnet上的服务代码
        String serviceCode = "45454";
        //ICP产品价格
        int price = 1000;
        //包月订购开始时间
        Date beginTime = new Date() ;
        Calendar cal = Calendar.getInstance() ;
        cal.setTime(beginTime) ;
        cal.add( Calendar.MONTH,1) ;
        //包月订购结束时间
        Date endTime = cal.getTime() ;


        //将接收到的结果解析出来
        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(1);
        //客户ICP登录名, String 类型, 最长64位
        acrequest.setIcpLoginName(icpLoginName);
        //产品信息, String 类型, 最长64位
        acrequest.setProductInfo(productInfo);
        //用户包月开始时间
        acrequest.setStartTime(beginTime);
        //用户包月结束时间
        acrequest.setEndTime(endTime);
        //全局唯一的交易号。
        acrequest.setTransactionId(result.getTransactionID());
        //Vnet 客户统一登录名
        acrequest.setVnetLoginName(vnetloginname);

        //生成服务订购entity
        OWSubscriptionFromICP sub = new OWSubscriptionFromICP();
        sub.setBeginTime(beginTime);
        sub.setEndTime(endTime);
        sub.setProductChargeplanDesc(productInfo);
        sub.setProductKey(serviceCode);
        sub.setProductPriceDesc((price/1000) + "元频道包月不限次");
        sub.setSubTime(new Date());
        sub.setVnetLoginName(vnetloginname);
        try{
                //调用收费接口
                OWAccountingResult result2 = WebProManager.getOWAccounting().setAccountingInfo(acrequest);
                if(!("true".equalsIgnoreCase(result2.getErrorCode()))){
                        out.println("扣费时发现错误:" + result2.getMessage());
                        return;
                }
                //调用服务订购接口
                OWSubscriptionResult subresult =  WebProManager.getOWAuthentication().OWAddSubscriptionFromICP(sub);
                if(!("true".equalsIgnoreCase(subresult.getErrorCode()))){
                        out.println("调用服务订购接口时发现错误:" + subresult.getMessage());
                        return;
                }

        }catch(Exception e){
                e.printStackTrace();
                out.println("扣费时发现错误:" + e.toString());
                return;
        }
 %>
<html><head><title></title></head><body>
收费记录已保存,可以消费包月服务了。<BR>
到互联星空上可以查到本次消费的详单。<BR>
<A href='http://gd.chinavnet.com/'>单击此处回到Vnet订购页面</A><BR>
<%
        if(suitename!=null){
                //为套餐用户,做相应的处理。
                out.println("该用户已订购了套餐:"+ suitename);
        }
%>
</body></html>

⌨️ 快捷键说明

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