与SecureNet支付网关集成

Luk*_*uke 7 php wcf soap wsdl soap-client

我正在尝试将我们的软件与SecureNet网关集成.他们有一个基于SOAP的API.

我遇到的问题是他们的WSDL文件真的不适用于PHP.具体来说,他们的WSDL文件分为多个文件和一个wsdl:import语句,导入位置是http.在他们的测试服务器httphttps端口是打开的,所以PHP可以读取WSDL文件.在他们的生产服务器上只https打开,但他们的位置块仍然引用http,所以PHP超时!如果它是https它会工作正常.

他们的建议是从测试服务器中提取WSDL文件,但覆盖该位置.他们告诉我他们的测试服务器应该总是在运行,但我觉得依靠两个系统让我们的交易工作起来并不舒服.

另一种方法是使用他们的XML post 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
Run Code Online (Sandbox Code Playgroud)

Zak*_*Zak 0

您可以从生产服务器中提取 WSDL 并使用SoapClient::__setLocation以编程方式覆盖该位置