我試圖將我們的軟件與SecureNet網關集成。他們有一個基於SOAP的API。與SecureNet支付網關集成
我遇到的問題是他們的WSDL文件確實不使用PHP工作。具體來說,他們的WSDL文件使用wsdl:import
語句分割到多個文件中,導入位置爲http
。在他們的測試服務器http
和https
端口是開放的,所以PHP可以讀取WSDL文件。在他們的生產服務器上只有https
已打開,但其位置塊仍然引用http
,所以PHP超時!如果它是https
它會正常工作。
他們的建議是拉從他們的測試服務器的WSDL文件,但覆蓋的位置。他們告訴我他們的測試服務器應該總是在運行,但我不願意依靠兩個系統來處理我們的事務。
另一種方法是用自己的XML API後...但是,隨着這個問題是你必須按照正確的順序來指定每個字段(需要與否)。最糟糕的部分是這個API的錯誤信息只是Unknown Error.
,所以幾乎不可能找出我錯過的東西。
我需要一個第三個選項。如果我可以加載WSDL文件(可以在測試中,而不是在產品上),Soap運行良好。我認爲他們正在使用WCF,我相信這是一個.NET的東西。應該有一個「?simpleWSDL」和「?wsdl」選項,但在他們的WCF版本中沒有它。
這裏是他們的WSDL文件(測試服務器):https://certify.securenet.com/API/Gateway.svc?wsdl
編輯:
下面是可重複的代碼:
$client = new SoapClient("https://gateway.securenet.com/API/Gateway.svc?wsdl");
// Hangs and throws exception in construct
這設置終點。問題在於WSDL文件導入了其他幾個文件,導入URL以http://開頭。他們建議從他們的開發環境中提取WSDL並使用setLocation,但我不想依賴他們的開發環境。 – Luke