2015-05-14 3 views
2

Я хочу достичь этого xml.SOAP: построить конверт в php

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://eid.equifax.com/soap/schema/canada/v2"> 
<soapenv:Header/> 
<soapenv:Body> 
    <v2:InitialRequest> 
    <v2:Identity> 
     <v2:Name> 
      <v2:FirstName>MILO</v2:FirstName> 
      <v2:LastName>TESTADD</v2:LastName> 
     </v2:Name> 
     <!--1 to 3 repetitions:--> 
     <v2:Address timeAtAddress="50" addressType="Current"> 
      <v2:HybridAddress> 
       <v2:AddressLine>731 BAY AVE</v2:AddressLine> 
       <v2:City>Kelowna</v2:City> 
       <v2:Province>BC</v2:Province> 
       <v2:PostalCode>V1Y7K2</v2:PostalCode> 
      </v2:HybridAddress> 
     </v2:Address> 
     <v2:DateOfBirth> 
      <v2:Day>03</v2:Day> 
      <v2:Month>03</v2:Month> 
      <v2:Year>1989</v2:Year> 
     </v2:DateOfBirth> 
    </v2:Identity> 
    <v2:ProcessingOptions> 
     <v2:Language>English</v2:Language> 
    </v2:ProcessingOptions> 
    </v2:InitialRequest> 
</soapenv:Body> 
</soapenv:Envelope> 

Итак, пока я создал это:

$all_names = array('FirstName'=>"PERFUME", 
         'LastName'=>"TESTSWEET"); 
    $all_addresses = array('AddressLine'=>"109 ALBERT ST NE", 
          'City'=>"AIRDRIE", 
          'Province'=>"AB", 
          'PostalCode'=>"T4B0R5" 
          ); 
    $hybrid_address = array('HybridAddress'=>$all_addresses); 
    $dob = array('Day'=>"31", 
       'Month'=>"09", 
       'Year'=>"1972" 
       ); 
    $identity = array('Name'=>$all_names, 
         'Address'=>$hybrid_address, 
         'DateOfBirth'=>$dob 
        ); 
    $language = array('Language'=>'English'); 
    $initial_request = array('Identity'=>$identity, 
          'ProcessingOptions'=>$language 
          ); 

$test = $client->__call('startTransaction', array('initialRequest'=>$initial_request)); 

Но, я не знаю, что случилось здесь. Это дает мне внутреннюю ошибку сервера.

PS: Данные кажутся разными, b'coz Я копировал из разных источников.

EDIT

[14-May-2015 17:02:03 America/Toronto] PHP Fatal error: Uncaught SoapFault  exception: [soap:Server] Unexpected internal error in  D:\home\site\wwwroot\application\third_party\WSSoapClient.php:61 
Stack trace: 
#0 D:\home\site\wwwroot\application\third_party\WSSoapClient.php(61): SoapClient->__call('startTransactio...', Array) 
#1 D:\home\site\wwwroot\application\controllers\equifax.php(58): WSSoapClient->__call('startTransactio...', Array) 
#2 [internal function]: Equifax->verify() 
#3 D:\home\site\wwwroot\system\core\CodeIgniter.php(359): call_user_func_array(Array, Array) 
#4 D:\home\site\wwwroot\index.php(227): require_once('D:\\home\\site\\ww...') 
#5 {main} 
thrown in D:\home\site\wwwroot\application\third_party\WSSoapClient.php on  line 61 
+0

Что-нибудь в журнале ошибок, чтобы сузить его? Сообщается ли об ошибках? – chris85

+0

Да. Все в порядке. Проверьте мое редактирование, пожалуйста. –

+0

@ chris85: Из-за этого я не могу использовать эту функцию для получения последнего запроса: '__getLastRequest()' –

ответ

0

Я пытался получить Equifax работает в настоящее время в течение нескольких недель. Линия поддержки рядом с бесполезной.

Вы установили кодировку? Это должно быть UTF8. Также получение пространства имен в правом конверте также останавливает некоторые ошибки. Он изменен из документации, которая заполнена опечатками и устарела. Способ включения заголовка также немного временный, а не в соответствии с документацией

+0

Можете ли вы задать другой вопрос и попытаться уточнить себя и, если возможно, показать некоторый фрагмент кода с ошибками, которые вы получаете. –