Ich bin nicht in der Lage, eine verschlüsselte SOAP-Anfrage in PHP zu machen. Gemäß der Dokumentation habe ich jede Anfrage an das Payment Gateway verschlüsselt. Ich habe eine CSR generiert & schickte es an die Behörde für das Zertifikat. Sie haben mir das Domain-Zertifikat & CA-Zertifikat zurückgeschickt. Das größte Problem ist, dass die Dokumentation nicht für PHP gedacht ist. Gemäß dem Dokument:So verschlüsseln Sie jede Soap-Anfrage in PHP
The web service is protected with WS-Security Sign and encryption policy
Nach langer Suche fand ich eine helper class from Git aber wenn ich versuche ich folgende Fehlermeldung erhalten zu verbinden:
Allgemeine Sicherheitsfehler (Es wurden keine Zertifikate für die Entschlüsselung gefunden (KeyID)
FaultCode : wsse:InvalidSecurity
) habe ich versucht, SSL-Header wie folgt festgelegt:
$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);
aktualisieren
definiert ich die Schlüssel als:
define('PRIVATE_KEY', 'server_prvate_key.key');
define('CERT_FILE', 'domain_cert.cer');
define('SERVICE_CERT', 'CA.cer');
Alles falsch mit dieser Definition (bitte die oben GIT-Link)?
Gibt es den 'cer' /' key' Dateien/Pfad? Hast du einen Blick darauf geworfen http://stackoverflow.com/questions/7147988/creating-a-php-soap-request-with-a-certificate –
@GabrielHeming Ja. Die Dateien existieren – Shan
Sie müssen den vollständigen Pfad zu Ihrem Schlüssel und Zertifikaten definieren, diese Hilfsklasse rät nicht, in welchem Ordner sie sind – Capsule