передача xml для процесса проверки

#php #asp.net #xml #api

#php #asp.net #xml #API

Вопрос:

Я немного запутался в том, как я создаю и отправляю этот вызов URL с помощью php …. вот xml, который мне нужно создать

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://www.site.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <mer:InitializePayment>
         <mer:request>
            <mer:MerchantID>67779987</mer:MerchantID>
            <mer:Password>XXXXXXXXXXXXXXXX</mer:Password>
            <mer:Invoice>12345</mer:Invoice>
            <mer:TotalAmount>1.03</mer:TotalAmount>
            <mer:TaxAmount>0.50</mer:TaxAmount>
            <mer:AVSAddress>4 Corpor</mer:AVSAddress>
            <mer:AVSZip>30329</mer:AVSZip>
            <mer:TranType>PreAuth</mer:TranType>
            <mer:CardHolderName>John Jamed</mer:CardHolderName>
            <mer:Frequency>OneTime</mer:Frequency>
            <mer:CustomerCode>CustCode123</mer:CustomerCode>
            <mer:Memo>HostedCheckoutMemo</mer:Memo>
            <mer:ProcessCompleteUrl>https://somesite/ordercomplete.aspx</mer:ProcessCompleteUrl>
            <mer:ReturnUrl>https://somesite/ShoppingCart.aspx</mer:ReturnUrl>
            <mer:DisplayStyle>Prent</mer:DisplayStyle>
            <mer:BackgroundColor>#FFFFFF</mer:BackgroundColor>
            <mer:FontColor>#000000</mer:FontColor>
            <mer:FontFamily>FontFamily1</mer:FontFamily>
            <mer:FontSize>Medium</mer:FontSize>
            <mer:LogoUrl>https://somesite/images/DurangoPet2.PNG</mer:LogoUrl>
            <mer:PageTitle>Test SoapUI</mer:PageTitle>
            <mer:SecurityLogo>On</mer:SecurityLogo>
         </mer:request>
      </mer:InitializePayment>
   </soapenv:Body>
</soapenv:Envelope>
  

и вот пример URL, который мне нужно отправить на

   https://someplace.net/tws/TransactionService.asmx?wsdl  
  

Возможно, я в замешательстве, потому что предполагал, что выполнение вызова api будет выглядеть следующим образом

   https://someplace.net/tws/TransactionService.asmx?wsdl?MerchantID=67779987amp;XXXXXXXXXXXXXXXX
  

Может быть, кто-нибудь сможет прояснить это для меня

     array(6) { 
[0]=> string(74) "InitializePaymentResponse InitializePayment(InitializePayment $parameters)" 
[1]=> string(62) "VerifyPaymentResponse VerifyPayment(VerifyPayment $parameters)" 
[2]=> string(77) "AcknowledgePaymentResponse AcknowledgePayment(AcknowledgePayment $parameters)"  
[3]=> string(74) "InitializePaymentResponse InitializePayment(InitializePayment $parameters)" 
[4]=> string(62) "VerifyPaymentResponse VerifyPayment(VerifyPayment $parameters)"
[5]=> string(77) "AcknowledgePaymentResponse AcknowledgePayment(AcknowledgePayment $parameters)" } 
  

Ответ №1:

Вам нужно использовать SOAP (в данном случае) http://www.php.net/manual/en/soapclient.dorequest.php для использования служб wsdl ( http://en.wikipedia.org/wiki/Web_Services_Description_Language )

что касается второй части

Обычно ваши заголовки SOAP будут иметь аутентификацию, указанную в вашем sampel XML (запросе)

  <mer:MerchantID>67779987</mer:MerchantID>
 <mer:Password>XXXXXXXXXXXXXXXX</mer:Password>
  

Комментарии:

1. я смотрю на библиотеку… как мне добавить заголовки с паролем и идентификатором продавца

2.@Tamer Сначала вы должны посмотреть, на какой сервис доступенsomeplace.net/tws/TransactionService.asmx?wsdl $client = new SoapClient(" https://someplace.net/tws/TransactionService.asmx?wsdl "); затем (предполагая, что, исходя из вашего примера, службой является «InitializePayment», вы выполняете запрос $result = $client->InitializePayment(array('MerchantID'=>67779987, "Password"=>"xxxxxx", "otherfileds"=>"values"));

3. $url = » hc.mercurydev.net/tws/TransactionService.asmx?wsdl «; $client = новый SoapClient($url, array(«trace» => 1, «exception» => 0)); var_dump($client);

4. я получил этот объект (SoapClient) # 1 (3) { [«trace»]=> int (1) [«_soap_version»]=> int (1) [«sdl»]=> ресурс (2) типа (неизвестный) }

5. @Tamer попробуйте это var_dump($client->__getFunctions());