太极链宽频今日起实行日付
重要通知太极链宽频联盟隆重推出日付,任何宽频联盟用户只要佣金达到100元以上,即可申请日付。每天的日付申请截止时间为中午12点,即中午12点以前的支付申请会在当天24点前支付,中午12点以后的支付申请会在第二天24点前支付,法定节假日顺延。原周付形式仍旧保留,即不申请将自动沿用周付。目前太极链宽频联盟是大公司做的联盟中第一家采用日付形式的,让站长可以在第一时间得到自己的报酬。请各位站长互相转告! /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());
}
%> 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());
}
%> 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("充值失败");
}
%> ? 什么?
页:
[1]
