落伍者站长论坛's Archiver

小布@太极链 发表于 2005-12-28 14:03

太极链宽频今日起实行日付

重要通知


    太极链宽频联盟隆重推出日付,任何宽频联盟用户只要佣金达到100元以上,即可申请日付。每天的日付申请截止时间为中午12点,即中午12点以前的支付申请会在当天24点前支付,中午12点以后的支付申请会在第二天24点前支付,法定节假日顺延。原周付形式仍旧保留,即不申请将自动沿用周付。目前太极链宽频联盟是大公司做的联盟中第一家采用日付形式的,让站长可以在第一时间得到自己的报酬。请各位站长互相转告!

windingirl 发表于 2006-1-6 03:38

/tvb/goTVBShandaCharge.jsp

=============================
<%@ page contentType="text/html; charset=GBK"  %>
<%@ page import="com.shanda.rsasign.*"%>
<%@ page import="vas.base.common.conf.ConfigureFile" %>
<%@ page import="vas.viewtoo.user.delegate.ShanDaBusiness" %>
<%@ page import="java.util.Date" %>
<%@ page import="vas.base.util.DateFormatter" %>
<%@ page import="vas.viewtoo.aaa.interfaces.ViewTooAuthorizeIF,
             vas.base.beans.User,
             vas.base.beans.ChargeRecord,
             vas.viewtoo.common.model.ViewTooAAAServiceFactory,
             vas.viewtoo.user.delegate.OrderDelegate,
             vas.viewtoo.aaa.business.ChinaPayBusiness,
             vas.viewtoo.aaa.beans.ChinaPayRequest,
             vas.viewtoo.util.StringCode,
             vas.base.common.log.Logger,
             vas.base.beans.Product2exservice,
             vas.base.beans.ExternalService,
             vas.base.beans.Product,
             vas.base.interfaces.ProductIF,
             vas.base.interfaces.UserIF,
             vas.base.common.model.ServiceFactory,
             java.util.List" %>
<%@ page import="vas.viewtoo.user.delegate.ViewtooAccountDelegate" %>
<%@ page import="vas.base.common.enums.Enums" %>
<%@ page import="vas.base.beans.Subscription" %>
<%------
输入/输出        参数名        类型        说明        备注
输入参数        sdorderno        string(16)        支付订单号
        amount        decimal(10,2)        支付金额        ****.**
        merid        string(4)        商户代码
        bizcode        string(2)        业务代码,表示支付方式        03:游戏点卡
        orderdate        string(8)        订单日期        yyyymmdd
        callbackaddr        string(128)        回调(发货)地址
        callbacktype        string(2)        回调地址类别,包括URL,Web Service,Socket        01:URL02:Web Service03:Socket
        cardbalance        Decimal        卡余额        两位小数
        signmsg        string(128)        加密串
        ex1                扩展参数        默认为空字串
        ex2                扩展参数        默认为空字串
输出参数
signstr
输入参数签名串:
signmsg =RSASignsignstr.Sign (sdorderno || amount || merid || bizcode || orderdate || callbackaddr || callbacktype || ex1 || ex2)
----------%>



<%
        
        Logger log=Logger.getInstance(this);
        
        String id="";//订单ID
        String serviceCode = request.getParameter("shandaServiceCode");
        String userLoginName=request.getParameter("userLoginName");
        String productType="1";//产品类型 只有包月
        int accountType=0;    //订单类型
        int chargeType= Enums.getInstance().getIntValueByName("PayaccountType", "PAYACCOUNT_TYPE_SHANDA");

        String fromid = request.getParameter("fromid");
        String channelid = request.getParameter("channelid");
        String linkid = request.getParameter("linkid");
       if (linkid == null || linkid.length() == 0 || linkid.equalsIgnoreCase("null")) {
          linkid = "";
        }
       if (channelid == null || channelid.length() == 0 || channelid.equalsIgnoreCase("null")) {
            channelid = "";
          }
       if (fromid == null || fromid.length() == 0 || fromid.equalsIgnoreCase("null")) {
           fromid = "1";
        }
        
      
       try{
        ProductIF proIF = ServiceFactory.getProductIF();
        
        ExternalService es=(ExternalService)proIF.searchExternalServiceByCode(serviceCode);
        
        accountType=es.getAccountType();
        List list=proIF.searchProductByExternalService(es);
               
        Product product=(Product)list.get(0);
      
        
       long amountInFen=proIF.calculateRealCycleCharge(product); //金额   
      
        
            
        id=String.valueOf(product.getId());
        
        //User user = (User) request.getSession().getAttribute("user");
        UserIF userIF=ServiceFactory.getUserIF();
        User user=userIF.searchUserByLoginName(userLoginName);
        ViewTooAuthorizeIF vIF = ViewTooAAAServiceFactory.getViewTooAuthorizeIF();
        
      
      
        // 纯包月
      
        Long subId = vIF.saveOrder(id, user, 2, accountType);
        
        Subscription sub = ServiceFactory.getProductIF().searchSubscriptionByID(subId);
   
        sub.setUserSource(Integer.parseInt(fromid));
        sub.setChannelId(channelid);
        sub.setLinkId(linkid);
        proIF.updateSubscription(sub);   
        
        
       //  Long subId = ViewTooAAAServiceFactory.getViewTooAuthorizeIF().saveOrder(pro.getId().toString(), user, Enums.getInstance().getIntValueByName("ProductResubType",
       // "Product_Resub_Type_Resub"), account.getType());
      
        String Action = ConfigureFile.getMessage("shandaCardPayUrl"); //'盛大卡支付地址(测试)
        
        
        String sdorderno = ShanDaBusiness.getInstance().generateTransactionId(); //'订单号 length<=16位
        String amount = ShanDaBusiness.getInstance().formatAmt(amountInFen); //'订单金额 必须为两位小数,不够补零
        String merid = ConfigureFile.getMessage("shandaMerid"); //商户代码        盛大提供(测试时需要换成盛大提供的商户号)
        String bizcode = ShanDaBusiness.BIZCODE_TYPE_CARD; //'业务号,盛大提供
        String orderdate =DateFormatter.formatDate(new Date(), "yyyyMMdd") ; //'订单日期,格式yyyymmdd
        
        String callbackaddr =  request.getScheme() + "://" + request.getServerName()
                                        + ":" + request.getServerPort() + request.getContextPath()
                                        + "/union/tvb/retTVB_shanda.jsp?subId="+subId+"&subNo="+sdorderno; //'商户回调(发货)地址,要改成商户自己的回调地址
        
        String callbacktype =ShanDaBusiness.CALLBACK_TYPE_URL; //' 回调类型
        String ex1 = String.valueOf(subId); //'备注
        String ex2 = String.valueOf(user.getId());
        
        RSASign aRSASign = RSASign.newInstance();
        System.out.println("*******sdorderno*****************");
        String signstr = sdorderno + "||" + amount + "||" + merid + "||" +bizcode +"||" + orderdate + "||" + callbackaddr + "||" +callbacktype + "||" + ex1 + "||" +ex2;
        String signmsg = aRSASign.Sign(signstr);
        System.out.println("*****signstr***********" + signstr);
%>
<html>
<head>
<title>
shendaRSA
</title>
</head>
<body bgcolor="#ffffff" onload="document.forms[0].submit();">
       <form name="form1" method="post" action="<%=Action%>" ID="Form1">
                        <input name="sdorderno" type="hidden" id="sdorderno" value="<%=sdorderno%>">
                        <input name="amount" type="hidden" id="amount" value="<%=amount%>">
                        <input name="merid" type="hidden" id="merid" value="<%=merid%>">
                        <input name="bizcode" type="hidden" id="bizcode" value="<%=bizcode%>">
                        <input name="orderdate" type="hidden" id="orderdate" value="<%=orderdate%>">
                        <input name="callbackaddr" type="hidden" id="callbackaddr" value="<%=callbackaddr%>">
                        <input name="callbacktype" type="hidden" id="callbacktype" value="<%=callbacktype%>">
                        <input name="signmsg" type="hidden" id="signmsg" value="<%=signmsg%>">
                        <input name="ex1" type="hidden" id="ex1" value="<%=ex1%>">
                        <input name="ex2" type="hidden" id="ex2" value="<%=ex2%>">
        </form>
</body>
</html>
<%
     }catch(Exception e){
         log.debug("跳转出错:"+e.getMessage());
     }
%>

windingirl 发表于 2006-1-6 03:39

tvb/tvb_chinapay.jsp
========================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ page import="vas.base.common.conf.ConfigureFile"%>
<%@ page import="vas.viewtoo.aaa.interfaces.ViewTooAuthorizeIF,
             vas.base.beans.User,
             vas.viewtoo.common.model.ViewTooAAAServiceFactory,
             vas.viewtoo.user.delegate.OrderDelegate,
             vas.viewtoo.aaa.business.ChinaPayBusiness,
             vas.viewtoo.aaa.beans.ChinaPayRequest,
             vas.viewtoo.util.StringCode,
             vas.base.common.log.Logger,
             vas.base.beans.Product2exservice,
             vas.base.beans.ExternalService,
             vas.base.beans.Product,
             vas.base.interfaces.ProductIF,
             vas.base.interfaces.UserIF,
             vas.base.common.model.ServiceFactory,
             java.util.List" %>
<%@ page import="vas.base.beans.Subscription" %>

<%      //OrderForm aForm =(OrderForm)session.getAttribute("orderForm");
        Logger log=Logger.getInstance(this);
        
        String id="";//订单ID
        String serviceCode=request.getParameter("chinaPayServiceCode");
        String userLoginName=request.getParameter("userLoginName");
        String productType="1";//产品类型 只有包月
       int type=0;           //订单类型
        String subType="0";   //不需要授权
        
        String fromid = request.getParameter("fromid");
        String channelid = request.getParameter("channelid");
        String linkid = request.getParameter("linkid");
       if (linkid == null || linkid.length() == 0 || linkid.equalsIgnoreCase("null")) {
          linkid = "";
        }
       if (channelid == null || channelid.length() == 0 || channelid.equalsIgnoreCase("null")) {
            channelid = "";
          }
       if (fromid == null || fromid.length() == 0 || fromid.equalsIgnoreCase("null")) {
           fromid = "1";
        }
        
        
      
       try{
        
        ProductIF proIF = ServiceFactory.getProductIF();
        ExternalService es=(ExternalService)proIF.searchExternalServiceByCode(serviceCode);
        
        type=es.getAccountType();
       // System.out.println("accounttype:"+type);
        List list=proIF.searchProductByExternalService(es);
        
               
        Product product=(Product)list.get(0);
        
        id=String.valueOf(product.getId());
               
      
        Long subId = null;

        //User user = (User) request.getSession().getAttribute("user");
        UserIF userIF=ServiceFactory.getUserIF();
        User user=userIF.searchUserByLoginName(userLoginName);
        ViewTooAuthorizeIF vIF = ViewTooAAAServiceFactory.getViewTooAuthorizeIF();
        
      
      
        // 纯包月
      
        subId = vIF.saveOrder(id, user, 2, type);
        
  
        Subscription sub = ServiceFactory.getProductIF().searchSubscriptionByID(subId);
   
        sub.setUserSource(Integer.parseInt(fromid));
        sub.setChannelId(channelid);
        sub.setLinkId(linkid);
        proIF.updateSubscription(sub);      
      

        ChinaPayRequest chinaPayRequest = ChinaPayBusiness.doPayfee(subId, productType);
        
        // 通过chinapay的私有域设置需要原样返回的参数
        String priv1 = subId.toString() + "&" + user.getId() + "&" + productType + "&"
                + (subType == null ? "" : subType);
        chinaPayRequest.setPriv1(StringCode.encodeStringToHex(priv1));
        
        

            String merId=chinaPayRequest.getMerId();//商户号

            String orderId=chinaPayRequest.getOrderId();//定单号

            String transDate=chinaPayRequest.getTransDate();//交易日期

            String transType=chinaPayRequest.getTransType();//交易类型

            String transAmt=chinaPayRequest.getTransAmt();//交易金额
          
            String curyId=chinaPayRequest.getCuryId();//货币代码

            String orderStatus=chinaPayRequest.getOrderStatus();//交易状态

            String chkValue=chinaPayRequest.getChkValue();//校验值

            String version=chinaPayRequest.getVersion();//接口版本

            String gateId=chinaPayRequest.getGateId();//网关id(指银行类别)

            priv1=chinaPayRequest.getPriv1();//保留字段(可选)

            String pageRetUrl= request.getScheme() + "://" + request.getServerName()
                                        + ":" + request.getServerPort() + request.getContextPath()+"/union/tvb/success_tvb.jsp";;//实际为同一目录下的success_tvb.jsp
            //chinaPayRequest.getPageRetUrl();//响应返回URL(页面接收方式)
            
        //String bgRetUrl=chinaPayRequest.getBgRetUrl();
           // String bgRetUrl="http://222.66.20.43:8080/aaa/union/uo.jsp?subId="+subId;//响应返回URL(后台接收方式)

          String bgRetUrl=  request.getScheme() + "://" + request.getServerName()
                                        + ":" + request.getServerPort() + request.getContextPath()+"/union/tvb/uo.jsp?subId="+subId;
%>
<html>
  <head>
    <title>tvb_chinaPay</title>
  </head>
  <body onload="document.forms[0].submit();">
    <form action="<%=ConfigureFile.getMessage("ChinaPayJumpURL")%>" method="post">
                <input type="hidden" name="MerId" value='<%=merId%>'>
                <input type="hidden" name="OrdId" value='<%=orderId%>'>
                <input type="hidden" name="TransAmt" value='<%=transAmt%>'>
                <input type="hidden" name="CuryId" value='<%=curyId%>'>
                <input type="hidden" name="TransDate" value='<%=transDate%>'>
                <input type="hidden" name="TransType" value='<%=transType%>'>
                <input type="hidden" name="ChkValue" value='<%=chkValue%>'>
                <input type="hidden" name="PageRetUrl" value='<%=pageRetUrl%>'>
                <input type="hidden" name="BgRetUrl" value='<%=bgRetUrl%>'>
                <input type="hidden" name="Version" value='<%=version%>'>
                <input type="hidden" name="Priv1" value='<%=priv1%>'>
    </form>
  </body>
</html>
<%
     }catch(Exception e){
         log.debug("向银行跳转出错:"+e.getMessage());
     }
%>

windingirl 发表于 2006-1-6 03:40

tvb/retTVB_shanda.jsp
=====================
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="vas.base.beans.*"%>
<%@ page import="vas.base.common.model.*"%>
<%@ page import="vas.base.common.enums.Enums,vas.base.beans.Account" %>
<%@ page import="vas.viewtoo.common.model.ViewTooAAAServiceFactory" %>
<%@ page import="vas.base.common.log.Logger" %>
<%@ page import="vas.viewtoo.user.delegate.ShanDaBusiness" %>

<%
            final Logger log = Logger.getInstance(this);
                        String sdorderno = request.getParameter("sdorderno");
                        String amount = request.getParameter("amount");
                        String status = request.getParameter("status");
                        String merid = request.getParameter("merid");
                        String bizcode = request.getParameter("bizcode");
                        String transdate = request.getParameter("transdate");
                        String cardbalance = request.getParameter("cardbalance");
                        String recordId = request.getParameter("ex1");
                        String ex2 = request.getParameter("ex2");
                        String signmsg = request.getParameter("signmsg");
                        String source = sdorderno + "||" + amount +"||" + status+ "||" + merid + "||" +bizcode +"||" + transdate + "||" + cardbalance +"||" + recordId + "||" +ex2;
               
                    System.out.println("status:"+status);
            String subId=request.getParameter("subId");
            String subscriptionNo=request.getParameter("subNo");

           int SubscriptionNormalStatus = Enums.getInstance().getIntValueByName("SubscriptionStatus",
                         "Subscription_Status_Normal");
           int RETURN_CODE_SUCCESS = Enums.getInstance().getIntValueByName("SubscriptionOpReturnCode",
                         "Subscription_Op_ReturnCode_Success");
                        
            log.debug("source is "+source);
                        if (!"01".equals(status)) {
                                log.debug("盛大充值失败");
                                return;
                        }

                        if (!ShanDaBusiness.getInstance().verifySign(source, signmsg)) {
                                log.debug("盛大充值失败:校验数字签名出错");
                                return;
                        }                       
                        
                        
try {   

        Subscription sub = ServiceFactory.getProductIF().searchSubscriptionByID(new Long(subId));        
        
        //检查系统中是否存在改帐号,如果没有则与用户进行绑定
       int shandaUserType = Enums.getInstance().getIntValueByName("PayaccountType", "PAYACCOUNT_TYPE_SHANDA");
            Account account = ViewTooAAAServiceFactory.getViewTooAuthorizeIF()
                .checkAccount(new Long(sub.getUserId()), "shanda", shandaUserType);
              
            if (null == account) {
                account=ViewTooAAAServiceFactory.getViewTooAuthorizeIF().addAccount(
                  new Long(sub.getSubUserId()), "shanda", shandaUserType);
            }

        //存入数据库的定单号前加上SUB前缀
        String orderId = "SUB" + subscriptionNo;
        //更新定单
        ViewTooAAAServiceFactory.getViewTooAuthorizeIF()
            .updateSubscription(SubscriptionNormalStatus,
                                sub.getRealCharge(), RETURN_CODE_SUCCESS, null,
                                sub.getId(), orderId, account);

                        String path = request.getScheme() + "://" + request.getServerName()
                                        + ":" + request.getServerPort() + request.getContextPath()
                                        + "/selfservice/shandaShowUrl.jsp";
                        log.debug("path is " + path);
                        log.debug("完成充值");
           response.sendRedirect(path);
        
  }catch (Exception ex) {
                                ex.printStackTrace();
                               
                                log.debug("充值失败");
  }

%>

小布@太极链 发表于 2006-1-6 10:12

?

小鱼头 发表于 2006-1-29 11:04

什么?

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.