PHP 对接 java开发的SOAP接口 求助

__最后的轻语 2014-08-09 12:13:38
接口名称:号段授权
接口描述:该接口批量处理订单信息绑定和发放面单号功能。
触发条件:
接口协议:SOAP (Document Style)
调用方向:第三方物流平台 → 集成方案服务平台
测试地址:http://kj.kucangbao.com:8080/kcb-1.0/cxf/NoSegment?wsdl
命名空间:http://express.cxf.kcb.com
接口方法:authorize

发送数据结构:
<?xml version="1.0" encoding=“UTF-8”?>
<rt>
<tid>20140318155513001</tid>
<cid>STO</cid>
<uname>009933</uname>
<pwd>asd546546asd123sa65d4s654d65</pwd>
<infos>
<d>
<cd>1234567765</cd>
</d>
<d>
<cd>123456789</cd>
</d>
</infos>
</rt>


我写好的代码总是出错:

<?php
ini_set("soap.wsdl_cache_enabled", "0");
header("content-type:text/html;charset=utf-8");
$url = 'http://xs.kucangbao.com:80/kcb-1.0/cxf/NoSegment?wsdl';
//$url = 'http://kucangbao.oicp.net:8098/kcb-1.0/cxf/NoSegment?wsdl';
$uri = 'http://express.cxf.kcb.com';
try{

$string = '
<?xml version="1.0" encoding=“UTF-8”?>
<rt>
<tid>20140318155513001</tid>
<cid>STO</cid>
<uname>zyacs</uname>
<pwd>4302cd2621fc45b497de8b2e248cb1c7</pwd>
<infos>
<d>
<cd>1234567765</cd>
</d>
<d>
<cd>123456789</cd>
</d>
</infos>
</rt>
';
/**************************************************************/
$client = new SoapClient($url, array('trace'=>true,'exceptions'=>true));

$ret = $client->__soapCall('authorize',array($string));

print_r($ret);
?>
...全文
431 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-08-09
  • 打赏
  • 举报
回复
$uri = 'express.cxf.kcb.com'; $client = new SoapClient($url, array('trace'=>true,'exceptions'=>true, 'uri'=>$uri)); $ret = $client->__soapCall('authorize',array($string)); 按使用方法应为 $ret = $client->authorize(array('arg0' => '$string')); 或 $ret = $client->__soapCall('authorize', array(array('arg0'=>$string))); 但返回这样的内容,我就无能为力了
stdClass Object
(
    [return] => <?xml version="1.0" encoding="UTF-8"?><rt><rc>0200</rc><rm>数据格式不正确,没法解析</rm></rt>
)
__最后的轻语 2014-08-09
  • 打赏
  • 举报
回复
调试结果,0500是 java 服务器接收不到数据,我也调试不出来发送的 xml 数据

stdClass Object ( [return] => 0500系统异常或超时 )
==================================================================

array (size=3)
  0 => string 'deauthorizeResponse deauthorize(deauthorize $parameters)' (length=56)
  1 => string 'sendaddressResponse sendaddress(sendaddress $parameters)' (length=56)
  2 => string 'authorizeResponse authorize(authorize $parameters)' (length=50)


==================================================================

array (size=6)
  0 => string 'struct sendaddress {
 string arg0;
}' (length=36)
  1 => string 'struct sendaddressResponse {
 string return;
}' (length=46)
  2 => string 'struct deauthorize {
 string arg0;
}' (length=36)
  3 => string 'struct deauthorizeResponse {
 string return;
}' (length=46)
  4 => string 'struct authorize {
 string arg0;
}' (length=34)
  5 => string 'struct authorizeResponse {
 string return;
}' (length=44)
__最后的轻语 2014-08-09
  • 打赏
  • 举报
回复
XXX你们帮我大忙了。。数据格式我可以解决
xuzuning 2014-08-09
  • 打赏
  • 举报
回复
去掉 xml 中的 info 一节,得
stdClass Object
(
    [return] => <?xml version="1.0" encoding="UTF-8"?><rt><tid>20140318155513001</tid><rc>0100</rc><rm>账号或验证码错误</rm></rt>
)

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧