免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3834 | 回复: 9
打印 上一主题 下一主题

关于soap格式的问题,急求 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-28 16:12 |只看该作者 |倒序浏览
POST /bj/vnetInterface/VNetForSP/VNetCenterInterfaceForSP.asmx HTTP/1.1
Host: service.test.chinavnet.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://service.zx.chinavnet.com/v1.0/DurationUsageRecord"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlnssd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <DurationUsageRecord xmlns="http://service.zx.chinavnet.com/v1.0/">
      <SPID>string</SPID>
      <TimeStamp>string</TimeStamp>
      <UserID>string</UserID>
      <TransactionID>string</TransactionID>
      <ServiceID>string</ServiceID>
      <ServiceItemID>string</ServiceItemID>
      <ItemName>string</ItemName>
      <StartTime>string</StartTime>
      <EndTime>string</EndTime>
    </DurationUsageRecord>
  </soap:Body>
</soap:Envelope>

在帮电信做一个接口服务
具体如下
http://service.test.chinavnet.co ... DurationUsageRecord
我是想用PHP发送如开头那样的一个soap请求,求助。万分感谢

论坛徽章:
0
2 [报告]
发表于 2008-10-28 16:15 |只看该作者
自己顶一下,
在线等待求解

论坛徽章:
0
3 [报告]
发表于 2008-10-28 16:32 |只看该作者
再补充一个

接口请求消息DurationUsageRecordRequest包含如下信息:
名称        说明        数据类型        长度(字节)
SPID        SP编码        String        8
Authenticator        认证码,用于鉴别发送者。取值= base64 (SHA1 (SPSecret+TimeStamp))        String       
TimeStamp        时间戳,从1970年1月1日0时开始的毫秒数        String        ≤18
UserID        用户的唯一标识        String        11
TransactionID        交易号        String        36
ServiceID        用户消费的服务ID        String        16
ServiceItemID        服务项目ID         String        36
ItemName        服务项目名称        String        100
StartTime        使用服务开始时间,从1970年1月1日0时开始的毫秒数。        String        ≤18
EndTime        使用服务结束时间,从1970年1月1日0时开始的毫秒数。        String        ≤18
定义DurationUsageRecordRequest的Schema的格式如下:
<?xml version="1.0"?>
<xs:schema xmlnss="http://www.w3.org/2001/XMLSchema">
        <xs:element name="DurationUsageRecordRequest">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="SPID" type="xs:string"/>
                                <xs:element name="Authenticator" type="xs:string"/>
                                <xs:element name="TimeStamp" type="xs:string"/>
                                <xs:element name="TransactionID" type="xs:string"/>
                                <xs:element name="UserID" type="xs:string"/>
                                <xs:element name="ServiceID" type="xs:string"/>
                                <xs:element name="ServiceItemID" type="xs:string"/>
                                <xs:element name="ItemNamee " type="xs:string"/>
                                <xs:element name="StartTime" type="xs:string"/>
                                <xs:element name="EndTime" type="xs:string"/>
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
</xs:schema>
接口应答消息DurationUsageRecordResponse包含如下信息:
名称        说明        数据类型        长度(字节)
SenderID        应答方的省份码        String        2
TimeStamp        时间戳,从1970年1月1日0时开始的毫秒数        String        ≤18
TransactionID        交易号,与相应请求中的交易号相同        String        36
Result        交易结果
0:成功
-1001:失败
-10001:包数据格式不正确
-10002:数据校验不正确        Int        4
ErrorDescription        对错误/异常的详细描述信息        String        ≤256
定义DurationUsageRecordResponse的Schema的格式如下:
<?xml version="1.0"?>
<xs:schema xmlnss="http://www.w3.org/2001/XMLSchema">
        <xs:element name="DurationUsageRecordResponse">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="DurationUsageRecordResult">
                                        <xs:complexType>
                                                <xs:sequence>
                                                        <xs:element name="SenderID" type="xs:string"/>
                                                        <xs:element name="TimeStamp" type="xs:string"/>
                                                        <xs:element name="TransactionID" type="xs:string"/>
                                                        <xs:element name="Result" type="xs:int"/>
                                                        <xs:element name="ErrorDescription" type="xs:string"/>
                                                </xs:sequence>
                                        </xs:complexType>
                                </xs:element>
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
</xs:schema>


求解

论坛徽章:
0
4 [报告]
发表于 2008-10-28 16:35 |只看该作者
应该是要发送一个符合格式的soap请求
我就是不知道怎么定义那个格式

论坛徽章:
0
5 [报告]
发表于 2008-10-28 19:33 |只看该作者
那要看他们需要什么格式的咯。。。

附:SOAP 语法 http://www.w3school.com.cn/soap/soap_syntax.asp

所有SOAP消息的元素均被声明于针对 SOAP 封装的默认命名空间中:

http://www.w3.org/2003/05/soap-envelope/ (SOAP Version 1.2)

论坛徽章:
0
6 [报告]
发表于 2008-10-28 22:04 |只看该作者
构建一个有 SPID……等节点的xml 然后以array("DurationUsageRecordRequest"=>$xml) 传入
$xml是构成的xml

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
7 [报告]
发表于 2008-10-29 09:19 |只看该作者

  1. <?php

  2. $content = <<<CONTENT
  3. <?xml version="1.0" encoding="utf-8"?>
  4. <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  5.   <soap:Body>
  6.     <DurationUsageRecord xmlns="http://service.zx.chinavnet.com/v1.0/">
  7.       <SPID>string</SPID>
  8.       <TimeStamp>string</TimeStamp>
  9.       <UserID>string</UserID>
  10.       <TransactionID>string</TransactionID>
  11.       <ServiceID>string</ServiceID>
  12.       <ServiceItemID>string</ServiceItemID>
  13.       <ItemName>string</ItemName>
  14.       <StartTime>string</StartTime>
  15.       <EndTime>string</EndTime>
  16.     </DurationUsageRecord>
  17.   </soap:Body>
  18. </soap:Envelope>
  19. CONTENT;
  20. $length = strlen($content);
  21. $out = <<<SOAP
  22. POST /bj/vnetInterface/VNetForSP/VNetCenterInterfaceForSP.asmx HTTP/1.1
  23. Host: service.test.chinavnet.com
  24. Connection: close
  25. Content-Type: text/xml; charset=utf-8
  26. Content-Length: $length
  27. SOAPAction: "http://service.zx.chinavnet.com/v1.0/DurationUsageRecord"

  28. $content
  29. SOAP;
  30. ?>
  31. <?php
  32. $fp = fsockopen("service.test.chinavnet.com", 80, $errno, $errstr, 30);
  33. if (!$fp) {
  34.     echo "$errstr ($errno)<br />\n";
  35. } else {
  36.     fwrite($fp, $out);
  37.     while (!feof($fp)) {
  38.         echo fgets($fp, 128);
  39.     }
  40.     fclose($fp);
  41. }
  42. ?>
复制代码

论坛徽章:
0
8 [报告]
发表于 2008-10-29 10:16 |只看该作者
原帖由 HonestQiao 于 2008-10-29 09:19 发表



  
   
      string
      string
      string
      string
      string
      string
      string
      string
      string
   
  

CONTENT;
$length = strlen($content);
$out =  

谢谢乔大
昨天晚上写了一个类似的,楞是不行
原来是host赋值的问题,哎

论坛徽章:
0
9 [报告]
发表于 2008-10-30 17:15 |只看该作者

ASP

我又来了,
不知道asp版本怎么实现
这个算是都忘记了
net版本不要
谢谢啊谢谢

论坛徽章:
0
10 [报告]
发表于 2008-10-31 15:58 |只看该作者

自己回一个

http://www.cnsdn.com.cn/inc/show.asp?id=753
搞定了  看到这个  
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP