Fehlerbehebung
Fehler [curl] 77: Fehler beim Einrichten des Standortprüfungszertifikats: CA-Datei wird angezeigt, wenn Sie eine Anfrage an den Xsolla-Server mittels Pay Station SDK senden.
Wir aktivieren die SSL-Zertifikatsprüfung und verwenden das von Ihrem Betriebssystem bereitgestellte standardmäßige CA-Bundle. Allerdings ist nicht bei allen Betriebssystemen ein CA-Bundle auf dem Datenträger gespeichert. Beispielsweise haben Windows und OS X keinen einzelnen gemeinsamen Speicherort für CA-Bundles.
Dieses Problem lässt sich auf mehrere Wege lösen:
- Sie können die Zertifikatsprüfung in der Entwicklungsumgebung deaktivieren. Nutzen Sie dafür folgenden Code:
- php
<?php
use Xsolla\SDK\API\XsollaClient;
$client = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$client->setDefaultOption('ssl.certificate_authority', false);
- Stellen Sie ein zuverlässiges Zertifikat bereit (empfohlen). Stellen Sie sicher, dass die CA-Datei vorhanden ist, und spezifizieren Sie deren Pfad mit dem folgenden Code, wobei:
/path/to/file
der Pfad der CA-Datei istssl.certificate_authority
der Name der CA-Datei ist
- php
<?php
use Xsolla\SDK\API\XsollaClient;
$client = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$сlient->setDefaultOption('ssl.certificate_authority', '/path/to/file');
Unter Windows befindet sich die CA-Datei in folgenden Ordnern:
C:\windows\system32\curl-ca-bundle.crt C:\windows\curl-ca-bundle.crt
Wenn an den angegebenen Stellen kein Zertifikat vorliegt, können Sie das von Mozilla bereitgestellte Zertifikat verwenden.
In einigen Versionen von PHP für Windows kann die Konfiguration von Zertifikatspfaden über Code Probleme verursachen. Als Lösung empfiehlt es sich, die Datei php.ini
anzugeben.
curl.cainfo=c:/cacert.pem
Wenn PHP-CGI für Apache den Benutzernamen und das Passwort für die HTTP-Basisauthentifizierung nicht standardmäßig an PHP übermittelt, wird ein Fehler mit dem Code .htaccess
bzw. httpd.conf
um folgenden String zu ergänzen:
- php
<?php
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Wenn Sie das Pay Station PHP SDK verwenden, überprüft Xsolla die IP-Adressen, von denen die Webhooks gesendet wurden. Dabei wird in folgenden Fällen der Fehlercode
- der Webhook-Server wurde von einem Localhost in der Entwicklungsumgebung getestet
- Ihre App läuft in einer Produktionsumgebung hinter einem Proxyserver, z. B. einem Load Balancer
Deaktivieren Sie die Prüfung von IP-Adressen in der Entwicklungsumgebung mit folgendem Code:
- php
<?php
use Xsolla\SDK\Webhook\WebhookServer;
$webhookServer = WebhookServer::create($callback, PROJECT_KEY);
$webhookServer->start($webhookRequest = null, $authenticateClientIp = false);
Wenn Sie einen Proxyserver verwenden, wählen Sie eine der folgenden Lösungen:
- Fügen Sie dem Webhook-Server die IP-Adresse des Reverse-Proxyservers mit folgendem Code hinzu (empfohlen):
- php
<?php
use Xsolla\SDK\Webhook\WebhookServer;
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
$request->setTrustedProxies(array('YOUR_PROXY_SERVER_IP_OR_CIDR'));
$webhookServer = WebhookServer::create($callback, PROJECT_KEY);
$webhookServer->start();
- Fügen Sie die IP-Adresse des Proxys der Liste der zulässigen IP-Adressen hinzu.
Ausführliche Informationen über das Arbeiten mit einem Proxyserver finden Sie in der Simfony-Dokumentation.
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.