Yazılımımızı SecureNet ağ geçidiyle bütünleştirmeye çalışıyorum. SOAP tabanlı bir API var.SecureNet ödeme ağ geçidi ile tümleştirme
Yapmakta olduğum sorun onların WSDL dosyası gerçekten PHP ile çalışmıyor. Özellikle, WSDL dosyaları, bir wsdl:import
bildirimi ile birden çok dosyaya bölünür ve içe aktarma konumu http
'dur. Test sunucularında http
ve https
portları açık, bu yüzden PHP WSDL dosyasını okuyabilir. Üretim sunucularında yalnızca https
açık, ancak konum blokları hala http
referansıdır, bu yüzden PHP zaman aşımına uğradı! https
ise, iyi çalışır.
Önerileri, WSDL dosyasını test sunucusundan çekmek, ancak konumu geçersiz kılmaktı. Test sunucularının her zaman hazır olması gerektiğini söylüyorlar, ancak işlemlerin işe yaraması için iki sisteme güvenmemekte rahat hissetmiyorum.
Diğer alternatif, XML post API'sini kullanmaktır ... Ancak, bununla ilgili her alanı (gerekli veya değil) doğru sırada belirtmeniz gerekir. En kötüsü bu API için sadece Unknown Error.
hata mesajıdır, bu yüzden neyi kaçırdığımı anlamak neredeyse imkansız.
Üçüncü bir seçeneğe ihtiyacım var. Sabun iyi çalışır, eğer WSDL dosyasını yükleyebilirsem (test edilip üretime alınamaz). Sanırım WCF kullanıyorlar, ki ben inanıyorum bir .NET şey. "? WSSD" seçeneği "wsdl" seçeneği olması gerekiyordu, ancak WCF sürümlerinde buna sahip değil. İşte
onların WSDL dosyası (test sunucusu) 'dir: https://certify.securenet.com/API/Gateway.svc?wsdlDÜZENLEME: İşte
tekrarlanabilir kod şudur: Üretim sunucudan WSDL indirebiliriz
$client = new SoapClient("https://gateway.securenet.com/API/Gateway.svc?wsdl");
// Hangs and throws exception in construct
:
geçici çözüm istekleri için, şöyle yapacak URL'leri yeniden taban SoapClient sınıfını uzatmaktır. Sorun, WSDL dosyasının diğer birkaç dosyayı içe aktarması ve içe aktarma URL'lerinin http: // ile başlamasıdır. WSDL'yi geliştirme ortamlarından ve setLocation'ı kullanarak çekmeyi önerdiler, ama onların dev ortamına güvenmek istemiyorum. – Luke