Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/xml] Wyslanie i odebranie pliku xml
Forum PHP.pl > Forum > PHP
einter-project
Witam

Od razu powiem że nigdy nie bawiłem się obsługą xml.

Muszę wyslać na serwer Signal Iduna zapytanie xml i odebrać wiadomość zwrotną, ale nie wiem jak to ugryść.

Bardzo prosiłbym o pomoc i nakierowanie w jaki sposób to zrobić.

Dane do wysłania:
  1. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.signal-iduna.pl/etravel2/types">
  2. <soapenv:Header/>
  3. <soapenv:Body>
  4. <typ:PolicyOfferRequest>
  5. <typ:Agent>
  6. <typ:AgSymbol>334455</typ:AgSymbol>
  7. <typ:TaxNumber>1234567890</typ:TaxNumber>
  8. </typ:Agent>
  9. <typ:SalesMode>ETR_WS</typ:SalesMode>
  10. <typ:PortalCode>www.portalurl.pl </typ:PortalCode>
  11. <!-- Element opcjonalny (identyfikator oferty po stronie pośrednika) -->
  12. <typ:ExternalOfferIdentifier>EXT_OFF_ID</typ:ExternalOfferIdentifier>
  13. <typ:PackageCode>PTUR_BPD</typ:PackageCode>
  14. <typ:GtcVersion>TUR_BPD_2010</typ:GtcVersion>
  15. <!-- Sekcja zależna od pakietu, opisana w tabeli Warianty polisy -->
  16. <typ:PolicyVariant>
  17. <typ:VariantCode>S_BPD_TR_STD_EUROPA</typ:VariantCode>
  18. <typ:VariantParam/>
  19. <typ:Risks>
  20. <typ:Risk>
  21. <typ:RiskCode>S_KL</typ:RiskCode>
  22. <typ:InsuranceSum>
  23. <typ:Amount>30000</typ:Amount>
  24. <typ:Currency>EUR</typ:Currency>
  25. </typ:InsuranceSum>
  26. </typ:Risk>
  27. <typ:Risk>
  28. <typ:RiskCode>S_NNW</typ:RiskCode>
  29. <typ:InsuranceSum>
  30. <typ:Amount>15000</typ:Amount>
  31. <typ:Currency>PLN</typ:Currency>
  32. </typ:InsuranceSum>
  33. </typ:Risk>
  34. <typ:Risk>
  35. <typ:RiskCode>S_BP</typ:RiskCode>
  36. <typ:InsuranceSum>
  37. <typ:Amount>1000</typ:Amount>
  38. <typ:Currency>PLN</typ:Currency>
  39. </typ:InsuranceSum>
  40. </typ:Risk>
  41. <typ:Risk>
  42. <typ:RiskCode>S_OC</typ:RiskCode>
  43. <typ:InsuranceSum>
  44. <typ:Amount>30000</typ:Amount>
  45. <typ:Currency>EUR</typ:Currency>
  46. </typ:InsuranceSum>
  47. </typ:Risk>
  48. </typ:Risks>
  49. </typ:PolicyVariant> <typ:TravelDateFrom>2011-11-24</typ:TravelDateFrom>
  50. <typ:TravelDateTo>2011-11-24</typ:TravelDateTo>
  51. <!-- Słownikowy kod kraju -->
  52. <typ:Destination>GB</typ:Destination>
  53. <typ:TravelType>STAY</typ:TravelType>
  54. <typ:Clauses>
  55. <typ:Clause code="GTC" answer="Y" IPFrom="10.0.0.1"/>
  56. <typ:Clause code="MED_DOC" answer="Y" IPFrom="10.0.0.1"/>
  57. <typ:Clause code="MARKETING" answer="N" IPFrom="10.0.0.1"/>
  58. </typ:Clauses>
  59. <typ:Statements>
  60. <typ:Statement code="STAY_IN_RP" answer="Y" IPFrom="10.0.0.1"/>
  61. <typ:Statement code="STAY_IN_RESIDENCE_CTRY" answer="Y" IPFrom="10.0.0.1"/>
  62. </typ:Statements>
  63. <typ:PolicyLevelModifiers>
  64. <typ:PolicyLevelModifier>
  65. <typ:ModifierCode>ID_SALE</typ:ModifierCode>
  66. <typ:ModifierValue>-0.1</typ:ModifierValue>
  67. </typ:PolicyLevelModifier>
  68. </typ:PolicyLevelModifiers>
  69. <typ:PolicyHolder>
  70. <typ:Person>
  71. <typ:PrsFirstName>Norbert</typ:PrsFirstName>
  72. <typ:FullName>Traczyk</typ:FullName>
  73. <typ:PrsNationalID>80010112340</typ:PrsNationalID>
  74. <typ:PrsBirthDate>1980-01-01</typ:PrsBirthDate>
  75. <typ:Contact>
  76. <typ:Tel>+480225056272</typ:Tel>
  77. <typ:Email>norbert.traczyk@signal-iduna.pl</typ:Email>
  78. </typ:Contact>
  79. <typ:Addresses>
  80. <typ:Address>
  81. <typ:Street>Dluga</typ:Street>
  82. <typ:HouseNumber>5</typ:HouseNumber>
  83. <typ:Postcode>00-950</typ:Postcode>
  84. <typ:City>Warszawa</typ:City>
  85. <typ:CountryCode>PL</typ:CountryCode>
  86. <typ:AddressType>KOR</typ:AddressType>
  87. </typ:Address>
  88. </typ:Addresses>
  89. </typ:Person>
  90. </typ:PolicyHolder>
  91. <typ:Insureds>
  92. <typ:Insured>
  93. <typ:Person>
  94. <typ:PrsFirstName>Norbert</typ:PrsFirstName>
  95. <typ:FullName>Traczyk</typ:FullName>
  96. <typ:PrsNationalID>80010112340</typ:PrsNationalID>
  97. <typ:PrsBirthDate>1980-01-01</typ:PrsBirthDate>
  98. <typ:Contact>
  99. <typ:Tel>+480225056272</typ:Tel>
  100. </typ:Contact>
  101. <typ:Addresses>
  102. <typ:Address>
  103. <typ:Street>Dluga</typ:Street>
  104. <typ:HouseNumber>5</typ:HouseNumber>
  105. <typ:Postcode>00-950</typ:Postcode>
  106. <typ:City>Warszawa</typ:City>
  107. <typ:CountryCode>PL</typ:CountryCode>
  108. <typ:AddressType>KOR</typ:AddressType>
  109. </typ:Address>
  110. </typ:Addresses>
  111. </typ:Person>
  112. <typ:InsuredLevelModifiers>
  113. <typ:InsuredLevelModifier>
  114. <typ:ModifierCode>SZ</typ:ModifierCode>
  115. </typ:InsuredLevelModifier>
  116. </typ:InsuredLevelModifiers>
  117. </typ:Insured>
  118. <typ:Insured>
  119. <typ:Person>
  120. <typ:PrsFirstName>Dziadek</typ:PrsFirstName>
  121. <typ:FullName>Traczyk</typ:FullName>
  122. <typ:PrsBirthDate>1920-01-01</typ:PrsBirthDate>
  123. </typ:Person>
  124. <typ:InsuredLevelModifiers>
  125. <typ:InsuredLevelModifier>
  126. <typ:ModifierCode>CP</typ:ModifierCode>
  127. </typ:InsuredLevelModifier>
  128. <typ:InsuredLevelModifier>
  129. <typ:ModifierCode>SZ</typ:ModifierCode>
  130. </typ:InsuredLevelModifier>
  131. </typ:InsuredLevelModifiers>
  132. </typ:Insured>
  133. <typ:Insured>
  134. <typ:Person>
  135. <typ:PrsFirstName>Dziecko</typ:PrsFirstName>
  136. <typ:FullName>Traczyk</typ:FullName>
  137. <typ:PrsBirthDate>2010-01-01</typ:PrsBirthDate>
  138. </typ:Person>
  139. </typ:Insured>
  140. </typ:Insureds>
  141. </typ:PolicyOfferRequest>
  142. </soapenv:Body>
  143. </soapenv:Envelope>
  144.  



Dane do odebrania:
  1. <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://www.signal-iduna.pl/etravel2/types">
  2. <env:Body>
  3. <ns0:PolicyOfferResponse version="1.7.3.4/202" environmentCode="TEST" xmlns:ns2="http://www.signal-iduna.pl/etravel2/types">
  4. <ns2:StatusCode>OK</ns2:StatusCode>
  5. <ns2:Premium>
  6. <ns2:Amount>40.88</ns2:Amount>
  7. <ns2:Currency>PLN</ns2:Currency>
  8. </ns2:Premium>
  9. <ns2:PremiumWithoutID>
  10. <ns2:Amount>45.41</ns2:Amount>
  11. <ns2:Currency>PLN</ns2:Currency>
  12. </ns2:PremiumWithoutID>
  13. <ns2:OfferId>10596</ns2:OfferId>
  14. </ns0:PolicyOfferResponse>
  15. </env:Body>
  16. </env:Envelope>
  17.  


Pozdrawiam
nospor
Poczytaj o SOAP
http://be2.php.net/manual/pl/book.soap.php
einter-project
Witam
Już sobie poradziłem z problemem, szukając pomocy na angilsko-języcznych forach, bo na polskich chyba ludzie zapomnieli po co sa fora.

Oto kodzik dla potomnych, może sie komuś przyda:

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_HEADER, 0);
  3. curl_setopt($ch, CURLOPT_URL, "ADERS URL WEBSERWIS");
  4. curl_setopt($ch, CURLOPT_POST, 1);
  5. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  6. curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_str);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. $content=curl_exec($ch);
  9.  


Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.