Tôi không thể thực hiện yêu cầu SOAP được mã hóa bằng PHP. Theo tài liệu, tôi mã hóa từng yêu cầu đến cổng thanh toán. Tôi đã tạo một CSR & gửi cho cơ quan có thẩm quyền chứng nhận. Họ đã gửi lại cho tôi chứng chỉ miền & chứng chỉ CA. Vấn đề lớn nhất là tài liệu không có nghĩa là cho PHP. Theo tài liệu:Cách mã hóa mỗi yêu cầu xà phòng trong php
The web service is protected with WS-Security Sign and encryption policy
Sau khi tìm kiếm một thời gian dài tôi tìm thấy một helper class from Git nhưng bất cứ khi nào tôi cố gắng để kết nối tôi nhận được lỗi sau:
lỗi bảo mật chung (Không có chứng chỉ đã được tìm thấy để giải mã (KeyId))
FaultCode : wsse:InvalidSecurity
tôi cố gắng để thiết lập tiêu đề SSL như sau:
$contextOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'cafile' => '../../certs/CA.cer',
'local_cert' => '../../certs/server.cer',
'local_pk' => '../../certs/private_key.key',
'verify_depth' => 0,
'allow_self_signed'=>true,
)
);
$sslContext = stream_context_create($contextOptions);
Cập nhật
Tôi định nghĩa các phím như:
define('PRIVATE_KEY', 'server_prvate_key.key');
define('CERT_FILE', 'domain_cert.cer');
define('SERVICE_CERT', 'CA.cer');
Bất cứ điều gì sai trái với định nghĩa này (xin xem link GIT trên)?
Tệp/đường dẫn 'cer' /' key' có tồn tại không? Bạn có xem qua http://stackoverflow.com/questions/7147988/creating-a-php-soap-request-with-a-certificate này không –
@GabrielHeming Có. Các tập tin tồn tại – Shan
Bạn cần xác định đường dẫn đầy đủ đến khóa và chứng chỉ của bạn, lớp trợ giúp đó sẽ không đoán được thư mục nào là – Capsule