从PHP请求wsdl
这是我的WSDL 我想编写PHP代码来请求此WSDL。这是我的密码。并返回未提供的地址从PHP请求wsdl,php,wsdl,Php,Wsdl,这是我的WSDL 我想编写PHP代码来请求此WSDL。这是我的密码。并返回未提供的地址 define("ADDRESSDOCTOR_WSDL_URL","http://validator5.addressdoctor.com/webservice5/v1/addressvalidation.asmx?WSDL"); define("ADDRESSDOCTOR_USER_LOGIN","***"); define("ADDRESSDOCTOR_USER_PASSWORD","****"); $p
define("ADDRESSDOCTOR_WSDL_URL","http://validator5.addressdoctor.com/webservice5/v1/addressvalidation.asmx?WSDL");
define("ADDRESSDOCTOR_USER_LOGIN","***");
define("ADDRESSDOCTOR_USER_PASSWORD","****");
$parameters = array(
"FormatType"=>"WITH_ORGANIZATION",
"FormatDelimiter"=>"TAB",
"CountryType"=>"NAME_EN",
"CountryOfOrigin"=>"OFF",
"StreetWithHNo"=>true,
"FormatWithCountry"=>false,
"ElementAbbreviation"=>"OFF",
"PreferredScript"=>"LATIN_1",
"PreferredLanguage"=>"ENGLISH",
"StreetWithNumber"=>false,
"GlobalMaxLength"=>0,
"MaxResultCount"=>20,
"GlobalCasing"=>"UPPER",
"StandardizeInvalidAddresses"=>"OFF",
"FlexibleRangeExpansion"=>"ON",
"ProcessMode"=>"BATCH",
"MatchingScope"=>"ALL"
);
$address_element = array(
"RecordID"=>"REC_1245887",
"DeliveryAddressLines"=>"250 East Marshall Street",
"Locality"=>"Richmond",
"PostalCode"=>"23219",
"Province"=>"Virginia",
"Country"=>"USA");
for($i=0;$i<sizeof($address_element);$i++):
$client = new SoapClient(ADDRESSDOCTOR_WSDL_URL);
$function = $client->Process(array("login"=>ADDRESSDOCTOR_USER_LOGIN,"password"=>ADDRESSDOCTOR_USER_PASSWORD,"parameters"=>array("ProcessMode"=>"BATCH","ValidationParameters"=>$parameters),"addresses"=>$address_element[$i]));
print_r(get_object_vars($function));
endfor;
define(“ADDRESSDOCTOR\u WSDL\u URL”)http://validator5.addressdoctor.com/webservice5/v1/addressvalidation.asmx?WSDL");
定义(“地址医生\用户\登录”,“***”);
定义(“地址医生\用户\密码”,“****”;
$parameters=数组(
“FormatType”=>“与_组织”,
“FormatDelimiter”=>“选项卡”,
“CountryType”=>“姓名”,
“原产国”=>“关闭”,
“Streetwithno”=>正确,
“FormatWithCountry”=>false,
“元素缩写”=>“关闭”,
“PreferredScript”=>“拉丁文1”,
“首选语言”=>“英语”,
“StreetWithNumber”=>错误,
“GlobalMaxLength”=>0,
“MaxResultCount”=>20,
“全局Casing”=>“UPPER”,
“StandardizeInvalidAddresses”=>“关闭”,
“FlexibleRangeExpansion”=>“打开”,
“ProcessMode”=>“批处理”,
“匹配范围”=>“全部”
);
$address\u元素=数组(
“RecordID”=>“REC_1245887”,
“DeliveryAddressLines”=>“马歇尔东街250号”,
“地点”=>“里士满”,
“PostalCode”=>“23219”,
“省”=>“弗吉尼亚州”,
“国家”=>“美国”);
对于($i=0;$i进程(数组(“登录”=>ADDRESSDOCTOR\u USER\u登录,“密码”=>ADDRESSDOCTOR\u USER\u密码”,“参数”=>数组(“处理模式”=>“批处理”,“验证参数”=>$parameters),“地址”=>$address\u元素[$i]);
打印(获取对象变量($function));
endfor;
返回:
数组([ProcessResult]=>stdClass对象([StatusCode]=>300[StatusMessage]=>
地址必须提供。)您需要实际尝试这项工作,而不是让Stack为您完成
一旦你克服了这一切,你将“能够帮助”太好了。祝你好运。我已经找到了,现在我要开始了。请帮助我继续前进。我想这可能是你在地址数组上迭代的方式。我想你可能希望在没有循环的情况下传递它,并将其作为整个数组发送。不过,我需要信任来与服务一起验证;)我怎样才能把信用证寄给你。但我想发送一个批处理过程,在一个请求中发送多个地址。我基本上是想了解请求结构。从进程(地址->ArrayOfadAddress->地址->(所有地址输入参数,如街道、地点、交货地址行…)为了解开soap服务的神秘面纱,我使用了soapUI。我建议您安装它并从address doctor wsdl创建一个项目。确保选中了create mock requests复选框。然后您可以查看服务方法所需的xml。我认为这将有助于您形成php以正确地构建xml。