First Data Global Gateway'den bir SOAP yanıtı işlemeye çalışıyorum. Daha önce SoapClient kullandım, ama wsdl yok - ve şirket bir tane tedarik etmediklerini söylüyor.SOAP yanıtı işleniyor
Burada ve PHP el kitabında bulunan örneklere dayanarak SimpleXMLElement gibi çeşitli diğer yaklaşımları denedim, ancak çalışmak için hiçbir şey alamıyorum. İsim alanlarının benim sorunumun bir parçası olduğunu sanıyorum. Herkes bir yaklaşım önerebilir veya benzer bir örneğe işaret edebilir mi? Google çabalarım bugüne kadar verimsiz olmuştur. (Bu sıyrılıp önce gelen tüm HTML başlığı şeylerle) PHP 5.
Kısmi SABUN Yanıtını kullanma
şuna benzer:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<fdggwsapi:FDGGWSApiOrderResponse xmlns:fdggwsapi="http://secure.linkpt.net/fdggwsapi/schemas_us/fdggwsapi">
<fdggwsapi:CommercialServiceProvider/>
<fdggwsapi:TransactionTime>Thu Nov 29 17:03:18 2012</fdggwsapi:TransactionTime>
<fdggwsapi:TransactionID/>
<fdggwsapi:ProcessorReferenceNumber/>
<fdggwsapi:ProcessorResponseMessage/>
<fdggwsapi:ErrorMessage>SGS-005005: Duplicate transaction.</fdggwsapi:ErrorMessage>
<fdggwsapi:OrderId>A-e833606a-5197-45d6-b990-81e52df41274</fdggwsapi:OrderId>
...
<snip>
Ben de bir SOAP olmadığını belirlemek için gerekiyor Arıza bildirildi. Ben arıza olmayan yanıtları veri almak mümkün olmuştur Sn Code'un cevabını kullanma
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:FaultX>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring xml:lang="en">MerchantException</faultstring>
<detail>
cvc-pattern-valid: Value '9999185.00' is not facet-valid with respect to pattern '([1-9]([0-9]{0,3}))?[0-9](\.[0-9]{1,2})?' for type '#AnonType_ChargeTotalAmount'.
cvc-type.3.1.3: The value '9999185.00' of element 'v1:ChargeTotal' is not valid.
</detail>
</SOAP-ENV:FaultX>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
: Bunun için XML buna benzemez. Ama ne tür paketlerle uğraştığımı ve her iki türden veri almam gerektiğini belirlemem gerekiyor. Sadece bir wsdl sağlayabileceklerse çok daha kolay olurdu!
Teşekkürler - tam olarak ihtiyacım olan şey buydu - her iki ad alanının bu şekilde referans edildiği bir örnek görmedim. – JonP
Örnek, geçerli bir yanıt alırsam güzel çalışır, ancak bir sabun hatası bildirildiğinde fazladan bir "kırışıklık" keşfettim. Bu durumda, elbette ikinci bir isim alanı yoktur ve bir hata unsuru ve içeriğinin olup olmadığını belirleme basit bir yöntemle çalışamıyorum. Bir şey önerebilir misin? – JonP
Soruyu sabun hata yanıtının bir örneğiyle güncelleyin ve bir göz atın. – MrCode