#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());