组件没有源代码。 如果是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);
?>

解决方案 »

  1.   

    小弟不才.
    $acrequest = new COM('objWebPro.OWAuthorizeRequest');
    这里不是很明白.他怎么就知道xml在哪个目录呢?还有.不能把XML里的参数整合到listen.php里来调用么?一定要调用组件吗?
      

  2.   

    我的意思是就不用像
    $acrequest = new COM('objWebPro.OWAuthorizeRequest');
    这类的组件了.因为我想ASP里他组件的目的也就是用来调用XML和account.asp处理结果并把结果写入文件的.
    直接在listen.php里设变量并设为XML里的值.然后直接调用.行吗?
    刚才试了下.PHP里不加入
    $acrequest = new COM('objWebPro.OWAuthorizeRequest');
    此类语句.可以显示.但是一加下这个.就显示空白了.
      

  3.   

    'objWebPro.OWAuthorizeRequest'组件(bin目录里的WebPro.dll)注册过了吗?
    ASP是可以直接读 XML,问题是组件里面的业务逻辑要先知道,那样的话不用组件也可以。
      

  4.   

    哦..我不需要知道DLL里面的业务逻辑啊.只要把listen.asp里面调用xml的组件部分集合到listen.php里就好了
      

  5.   

    如果是在windwos下使用,只要把该COM组件注册下(命令行下输入,regsvr32 c:\\xxx\bin\webpro.dll)就可以了,和asp里一样使用的,COM组件会去读config下的xml.如果不使用组件的话,至少要知道组件里的程序是怎么执行的,才可以将其改成php脚本。没有组件源代码就只能猜了。