Tôi đang cố gắng tích hợp phần mềm của chúng tôi với cổng SecureNet. Họ có một API dựa trên SOAP.Tích hợp với cổng thanh toán SecureNet
Sự cố tôi gặp phải là tệp WSDL của họ thực sự không hoạt động với PHP. Cụ thể tệp WSDL của họ được chia thành nhiều tệp với câu lệnh wsdl:import
và vị trí nhập là http
. Trên máy chủ thử nghiệm của họ http
và https
cổng đang mở, vì vậy PHP có thể đọc tệp WSDL. Trên máy chủ sản xuất của họ chỉ https
đang mở, nhưng khối vị trí của họ vẫn tham chiếu http
, vì vậy, PHP hết giờ! Nếu nó là https
, nó sẽ hoạt động tốt.
Đề xuất của họ là kéo tệp WSDL từ máy chủ thử nghiệm của họ, nhưng ghi đè vị trí. Họ nói với tôi rằng máy chủ thử nghiệm của họ phải luôn luôn hoạt động, nhưng tôi không cảm thấy thoải mái khi dựa vào hai hệ thống để giao dịch của chúng tôi hoạt động.
Cách khác là sử dụng API bài XML của họ ... Nhưng vấn đề với điều đó là bạn phải chỉ định mọi trường (cần thiết hay không) theo đúng thứ tự. Phần tồi tệ nhất là thông báo lỗi cho API này chỉ đơn giản là Unknown Error.
, vì vậy gần như không thể tìm ra những gì tôi đang thiếu.
Tôi cần tùy chọn thứ ba. Xà phòng hoạt động tốt, nếu tôi có thể tải tệp WSDL (có thể thử nghiệm, không phải sản xuất). Tôi nghĩ rằng họ đang sử dụng WCF, đó là một điều NET. Tôi tin. Có nghĩa vụ phải là một "? SimpleWSDL" câu "wsdl" tùy chọn, nhưng trên phiên bản của WCF không có nó.
Đây là tập tin WSDL của họ (server test): https://certify.securenet.com/API/Gateway.svc?wsdl
EDIT:
Đây là mã tái sản xuất:
$client = new SoapClient("https://gateway.securenet.com/API/Gateway.svc?wsdl");
// Hangs and throws exception in construct
này đặt điểm kết thúc. Vấn đề là tệp WSDL nhập một số tệp khác và bắt đầu nhập URL bằng http: //. Họ đề nghị kéo WSDL từ môi trường phát triển của họ và sử dụng setLocation, nhưng tôi không muốn dựa vào môi trường dev của họ đang được lên. – Luke