照意思看只是像一个接口发命令收传回的值,你查查手册吧,php有这个函数库。

解决方案 »

  1.   

    SOAP Functions
    简介警告 
    本扩展模块是实验性的。该模块的行为,包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。我们提醒您在使用本扩展模块的同时自担风险。 
     The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of SOAP 1.1, SOAP 1.2 and WSDL 1.1 specifications. 
      

  2.   

    我下了pear类库,并调试了,结果返回了一个错误,大概是我不知道它的namespace,所以返回了错误。<style type="text/css">
    *{font:12px verdana;}
    </style>
    <pre>
    <?phpinclude("SOAP/Client.php");$oSoap = new SOAP_Client("http://sms.bmcc.com.cn/webservice/smsg.asmx?WSDL");$UserName = $UserName?$UserName:"UserName";
    $PassWord = $PassWord?$PassWord:"PassWord";$RanStr=rand();//'取得加密字符窜(可在本地生成)$HashStr=strtoupper(MD5($RanStr & strtoupper(MD5($PassWord))));//'生成HashStr$EntCode = $EntCode?$EntCode:"EntCode";$RanStr = $RanStr?$RanStr:"RanStr";
    $HashStr = $HashStr?$HashStr:"HashStr";
    $Content = $Content?$Content:"Content";
    $MobileNumber = $MobileNumber?$MobileNumber:"MobileNumber";
    $SendTime = $SendTime?$SendTime:"SendTime";
    $SrcNumber = $SrcNumber?$SrcNumber:"SrcNumber";
    $DataType = $DataType?$DataType:"DataType";
    $callFunc = "Send";
    $DataType = 15;
    $params = array(
    "EntCode"=>$EntCode,
    "UserName"=>$UserName,
    "RanStr"=>$RanStr,
    "HashStr"=>$HashStr,
    "Content"=>$Content,
    "MobileNumber"=>$MobileNumber,
    "SendTime"=>$SendTime,
    "SrcNumber"=>$SrcNumber,
    "DataType"=>$DataType
    );$options = array('namespace' => 'urn:Send',
                     'trace' => 1);$sResult=$oSoap->call( $callFunc,$params,$options);//print $oSoap->__get_wire();echo $sResult;
    print_R( $sResult);?>
      

  3.   

    如果是php4,你需要下载如下pear类包,并放入php的include目录下,更改名称(去掉版本号),重启apache。
    去以下地址下载:http://pear.php.net/SOAP-0[1].9.1  ->SOAP
    HTTP_Request-1[1].2.4 -〉HTTP
    Net_URL-1[1].0.14 ->Net我这个实例程序是用来从365key取得一个用户的id,然而,得到的始终是00,不知道为什么。
    换其他方法也不行,得到的结果始终是空。<style type="text/css">
    *{font:12px verdana;}
    </style>
    <pre>
    <?phpinclude("SOAP/Client.php");$oSoap = new SOAP_Client("http://services.365key.com/exportService.asmx?WSDL");$callFunc = "getUserID";
    $username = "gu1dai";
    $num = 9;
    $DataType = 15;
    $params = array(
    "username"=>$username
    );$options = array('namespace' => 'urn:Send',
                     'trace' => 1);$sResult=$oSoap->call( $callFunc , $params);//print $oSoap->__get_wire();echo $sResult;
    print_R( $sResult);?>
      

  4.   

    访问http://sms.bmcc.com.cn/webservice/smsg.asmx?WSDL得到xml文档经过对这个文档的分析,取出参数。然后写测试文件。
    测试结果,服务器有响应,如果缺少参数则返回一个缺少参数的错误,将参数补齐后,经过大约20秒的等待,服务器返回一个信息。
    Object reference not set to an instance of an object
    查了下,这个错误在.net开发的web service中常见,所以我把它作为服务器的错误。并认为代码没有问题。希望有兴趣的兄弟也去测试下。
    代码如下。楼主提供的代码已基本被翻译。<style type="text/css">
    *{font:12px verdana;}
    </style>
    <pre>
    <?php
    require_once("../include/echo.php");
    include("SOAP/Client.php");$oSoap = new SOAP_Client("http://sms.bmcc.com.cn/webservice/smsg.asmx?WSDL");$UserName = $UserName?$UserName:"UserName";
    $PassWord = $PassWord?$PassWord:"PassWord";$RanStr=rand();//'取得加密字符窜(可在本地生成)$HashStr=strtoupper(MD5($RanStr & strtoupper(MD5($PassWord))));//'生成HashStr$EntCode = $EntCode?$EntCode:"1234";$RanStr = $RanStr?$RanStr:"RanStr";
    $HashStr = $HashStr?$HashStr:"HashStr";
    $Content = $Content?$Content:"Content";
    $MobileNumber = $MobileNumber?$MobileNumber:"13130212312";
    $SendTime = $SendTime?$SendTime:"15";
    $SrcNumber = $SrcNumber?$SrcNumber:"13912564568";
    $DataType = $DataType?$DataType:"15";
    $callFunc = "Send";
    $DataType = 15;
    $params = array(
    "EntCode"=>$EntCode,
    "UserName"=>$UserName,
    "RanStr"=>$RanStr,
    "HashStr"=>$HashStr,
    "Content"=>$Content,
    "MobileNumber"=>$MobileNumber,
    "SendTime"=>$SendTime,
    "SrcNumber"=>$SrcNumber,
    "DataType"=>$DataType
    );
    pr($params);$sResult=$oSoap->call( $callFunc,$params);echo $sResult;
    print_R( $sResult);?>
      

  5.   

    朋友,请关注一下此帖:
    http://community.csdn.net/Expert/topic/4338/4338855.xml?temp=.8305628
      

  6.   

    gu1dai(异域苍穹......追夢人) ,有空吗.我还有一个问题能问一下吗?
      

  7.   

    set oSoap = server.CreateObject("MSSOAP.SoapClient30")
    oSoap.ClientProperty("ServerHTTPRequest")=true
    oSoap.MSSoapInit("http://sms.bmcc.com.cn/webservice/smsg.asmx?WSDL")'初始化WSDL
    ====》WINDOWS 系统下应该可以这样用吧new $oSoap=new COM("MSSOAP.SoapClient30");
    $oSoap->ClientProperty("ServerHTTPRequest")=true
    $oSoap->MSSoapInit("http://sms.bmcc.com.cn/webservice/smsg.asmx?WSDL")'初始化WSDL
      

  8.   

    可以帮我看一下这个问题吗?
    $RanStr=rand();//'取得加密字符窜(可在本地生成)
    $HashStr=strtoupper(MD5($RanStr & strtoupper(MD5('100096'))));//'生成HashStr
                             $strRequest="EntCode=62015046&UserName=快乐文化&RanStr=${RanStr}&HashStr=${HashStr}&Content=test&MobileNumber=13556870911&SendTime=&SrcNumber=62015046&DataType=14" ;
    $strRequest2 = urlencode($strRequest);
    echo $strRequest2;
    $result = fopen("http://sms.bmcc.com.cn/webservice/smsg.asmx?op=Send&".$strRequest2, "r");
    if($retcode == 0)
    { echo "<font color=ff0000>成功加入到发送队列</font>";
    }
    这个返回是对的.但是功能还是不能实现
      

  9.   

    这个返回是对的.但是功能还是不能实现----------
    这个$retcode根本是空的。
    你没有在任何地方给$retcode赋予值。
    这个我再看看吧,怎么没别人来看看啊。
      

  10.   

    $client = new SoapClient("http://sms.bmcc.com.cn/webservice/smsg.asmx?WSDL");
    $callFunc = "Send";
    $EntCode=62015046;
    $UserName='快乐文化';
    $RanStr=rand();//'取得加密字符窜(可在本地生成)
    $HashStr=strtoupper(MD5($RanStr & strtoupper(MD5('100096'))));//'生成HashStr
    $Content='test';
    $MobileNumber=13556870911;
    $SendTime='';
    $SrcNumber=62015046;
    $DataType=14;
    $params = array(
    "EntCode"=>$EntCode,
    "UserName"=>$UserName,
    "RanStr"=>$RanStr,
    "HashStr"=>$HashStr,
    "Content"=>$Content,
    "MobileNumber"=>$MobileNumber,
    "SendTime"=>$SendTime,
    "SrcNumber"=>$SrcNumber,
    "DataType"=>$DataType
    );$r = $client->__soapCall($callFunc, $params);
    print_R($r);
      

  11.   

    返回
    一个object refer
    stdClass Object
    (
        [SendResult] => Object reference not set to an instance of an object.
    )证明我之前的代码的确是没有问题,这个结果是我升级了php到5.05调用系统的soap函数库得到的,和我用pear类库得到的结果完全一致,搞了一下午,一晚上,重看了龙争虎斗,我终于可以确定代码没有问题了,阿门。如果您有兴趣知道关于怎么升级服务器,不妨访问我的blog
    http://gudai.cnblogs.com
      

  12.   

    谢谢.在php5下可以,不过调用了
    http://sms.bmcc.com.cn/webservice/smsg.asmx?WSDL下的几个方法.但是在php4下还是有点问题.有空加我的msn.我把它传与你,可以吗?
      

  13.   

    如果是php4,你需要下载如下pear类包,并放入php的include目录下,更改名称(去掉版本号),重启apache。
    去以下地址下载:http://pear.php.net/SOAP-0[1].9.1         改名为 SOAP
    HTTP_Request-1[1].2.4 改名为 HTTP
    Net_URL-1[1].0.14     改名为 Net