组件没有源代码。 如果是win平台就直接调用其组件了。
receive.php
<?php
//取传回的参数
$result = $_GET['result'];
$token = $_GET['token'];
$vnetloginname =$_GET['vnetloginname'];
$verifycode = $_GET['verifycode'];
$WebProManager = new COM("objWebPro.WebProManager");
$MD5result = $WebProManager->MD5($token . $vnetloginname . 'vnetvalidate');
if($token==null || $vnetloginname==nill || $result==null){
echo "<p align='center'><font color='#FF0000'>非法请求,请退出重试!</font></p>";
exit(0);
}
//检查校验码是否正确,如果不正确,说明是用户修改了跳回时的参数值
if ($MD5result != $verifycode){
echo "发现返回参数被修改,校验码不正确!";
exit(0);
}
$_SESSION['sessionVnetLoginName'] = $vnetloginname;
$_SESSION['sessionAuthorizeResult'] = $result;
?>
<SCRIPT LANGUAGE="javascript">
window.location='account.asp';
// window.close();
</SCRIPT>listen.asp
<?php
//ICP产品价格
$price = 1000;
//ICP产品信息
$productInfo = '网络警示';
//所属服务
$serviceCode = '1005_s1000'; //按需修改
//ICP跳回网页地址
$returnURL = 'http://219.153.8.31/receive.php'; //对应的 receive.php 地址//创建用户验证请求对象
$acrequest = new COM('objWebPro.OWAuthorizeRequest');
//0,1——需要足额,否则授权失败;2——不需要足额,返回所有可用金额并冻结该金额
$acrequest->ExpenditureMode = '0';
//0:由Vnet系统自动判断1:指明用在ADSL和163帐号中做检查2:指明用在现金帐号中做检查
$acrequest->PayAccountCheckMode='0';
//ICP发布在Vnet上的产品地址
$acrequest->ServiceCode = $serviceCode;
//ICP需要强制跳回的URL
$acrequest->ReturnURL = $returnURL;
$acrequest->Expenditure = $price;
$acrequest->productInfo = $productInfo;
$OWAuthorizeRequest = new COM('objWebPro.OWAuthorizeRequest');
//将OWAuthorizationRequest 请求object变为请求String
$authString = $acrequest->tostring;
$WebProManager = new COM('objWebPro.WebProManager');
$jumpUrl = $WebProManager->GetAuthenticationJumpURL . "?authtype=auto&authorize_request=" . $authString;
//echo jumpUrl;
//跳到Vnet用户认证授权网页,
header('Location: ' . $jumpUrl);
?>
receive.php
<?php
//取传回的参数
$result = $_GET['result'];
$token = $_GET['token'];
$vnetloginname =$_GET['vnetloginname'];
$verifycode = $_GET['verifycode'];
$WebProManager = new COM("objWebPro.WebProManager");
$MD5result = $WebProManager->MD5($token . $vnetloginname . 'vnetvalidate');
if($token==null || $vnetloginname==nill || $result==null){
echo "<p align='center'><font color='#FF0000'>非法请求,请退出重试!</font></p>";
exit(0);
}
//检查校验码是否正确,如果不正确,说明是用户修改了跳回时的参数值
if ($MD5result != $verifycode){
echo "发现返回参数被修改,校验码不正确!";
exit(0);
}
$_SESSION['sessionVnetLoginName'] = $vnetloginname;
$_SESSION['sessionAuthorizeResult'] = $result;
?>
<SCRIPT LANGUAGE="javascript">
window.location='account.asp';
// window.close();
</SCRIPT>listen.asp
<?php
//ICP产品价格
$price = 1000;
//ICP产品信息
$productInfo = '网络警示';
//所属服务
$serviceCode = '1005_s1000'; //按需修改
//ICP跳回网页地址
$returnURL = 'http://219.153.8.31/receive.php'; //对应的 receive.php 地址//创建用户验证请求对象
$acrequest = new COM('objWebPro.OWAuthorizeRequest');
//0,1——需要足额,否则授权失败;2——不需要足额,返回所有可用金额并冻结该金额
$acrequest->ExpenditureMode = '0';
//0:由Vnet系统自动判断1:指明用在ADSL和163帐号中做检查2:指明用在现金帐号中做检查
$acrequest->PayAccountCheckMode='0';
//ICP发布在Vnet上的产品地址
$acrequest->ServiceCode = $serviceCode;
//ICP需要强制跳回的URL
$acrequest->ReturnURL = $returnURL;
$acrequest->Expenditure = $price;
$acrequest->productInfo = $productInfo;
$OWAuthorizeRequest = new COM('objWebPro.OWAuthorizeRequest');
//将OWAuthorizationRequest 请求object变为请求String
$authString = $acrequest->tostring;
$WebProManager = new COM('objWebPro.WebProManager');
$jumpUrl = $WebProManager->GetAuthenticationJumpURL . "?authtype=auto&authorize_request=" . $authString;
//echo jumpUrl;
//跳到Vnet用户认证授权网页,
header('Location: ' . $jumpUrl);
?>
$acrequest = new COM('objWebPro.OWAuthorizeRequest');
这里不是很明白.他怎么就知道xml在哪个目录呢?还有.不能把XML里的参数整合到listen.php里来调用么?一定要调用组件吗?
$acrequest = new COM('objWebPro.OWAuthorizeRequest');
这类的组件了.因为我想ASP里他组件的目的也就是用来调用XML和account.asp处理结果并把结果写入文件的.
直接在listen.php里设变量并设为XML里的值.然后直接调用.行吗?
刚才试了下.PHP里不加入
$acrequest = new COM('objWebPro.OWAuthorizeRequest');
此类语句.可以显示.但是一加下这个.就显示空白了.
ASP是可以直接读 XML,问题是组件里面的业务逻辑要先知道,那样的话不用组件也可以。