日期:2014-05-17  浏览次数:20543 次

php如何调用.NET开发的webservice
接口地址是:http://pi.f3.cn/F3WebService.asmx

要调用的方法是:

SendSMS 
短信发送 

大家看看短信接口应该怎么写?我老是调用不成功

我先说明下我的代码:
PHP code

<?php
class SendSMSParam
{    
    public $ToUserText; 
    public $ToUserByte; 
    public $SMSContent;
    public $PlanSendTime;
    public $MSGType; 
    public $LongCode;
}

class SendSMS
{
    public $SMSParam;
    public $ECECCID;
    public $Password;
}

$userid=1234567;//接入账户
$pwd="abcdefg";//接入密码
$mobile="13800000000";//下发手机号
$content="php测试短信";
$client=new SoapClient("http://pi.f3.cn/F3WebService.asmx?WSDL");
$SMSParam = new SendSMSParam();
$SMSParam->ToUserText=$mobile;
$SMSParam->SMSContent=$content;
$SMSParam->MSGType=5;
$SendSMSinfo=new SendSMS();
$SendSMSinfo->SMSParam=$SMSParam;
$SendSMSinfo->ECECCID=$userid;
$SendSMSinfo->Password=$pwd;
print_r($SendSMSinfo);
$client->SendSMS($SendSMSinfo);
?>



------解决方案--------------------
Fatal error: Uncaught SoapFault exception: [soap:Client] 服务器无法读取请求。 ---> XML 文档(2, 268)中有错误。 ---> 字符串“”不是有效的 AllXsd 值。 in
.....php:34 Stack trace: #0
.....php(34): SoapClient->__call('SendSMS', Array) #1 
.....php(34): SoapClient->SendSMS(Object(SendSMS)) #2
------解决方案--------------------
C/C++ code
<s:element minOccurs="0" maxOccurs="1" name="SMSParam" type="tns:SendSMSParam"/>
<s:element minOccurs="1" maxOccurs="1" name="ECECCID" type="s:long"/>
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>

<s:complexType name="SendSMSParam">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ToUserText" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ToUserByte" type="s:base64Binary"/>
<s:element minOccurs="0" maxOccurs="1" name="SMSContent" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="PlanSendTime" type="s:dateTime"/>
<s:element minOccurs="1" maxOccurs="1" name="MSGType" type="tns:c"/>
<s:element minOccurs="0" maxOccurs="1" name="LongCode" type="s:string"/>
</s:sequence>
</s:complexType>

<s:simpleType name="MSGType">
<s:restriction base="s:string">
<s:enumeration value="NoSMS"/>
<s:enumeration value="ShortSMS"/>
<s:enumeration value="LongSMSNoPageNum"/>
<s:enumeration value="LongSMSWithPageNum"/>
<s:enumeration value="LongSMS"/>
<s:enumeration value="WAPPush"/>
<s:enumeration value="MMS"/>
<s:enumeration value="NMS"/>
</s:restriction>
</s:simpleType>