So beheben Sie SDK-Probleme
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, z. B. beim Abrufen eines Tokens.
Standardmäßig aktivieren wir 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 Weisen 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. Stellen Sie sicher, dass die CA-Datei vorhanden ist, und spezifizieren Sie deren Pfad mit dem folgenden Code, wobei:
/path/to/file
dem Pfad der CA-Datei entsprichtssl.certificate_authority
dem Namen der CA-Datei entspricht
- 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.
- php
curl.cainfo=c:/cacert.pem
War dieser Artikel hilfreich?
Ein Fehler mit dem Code INVALID_SIGNATURE und der Meldung .htaccess
bzw. httpd.conf
um folgenden String zu ergänzen:
- curl
<?php
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
War dieser Artikel hilfreich?
Wenn Sie das Pay Station PHP SDK verwenden, überprüft Xsolla standardmäßig die IP-Adressen, von denen die Webhooks gesendet wurden. Dabei wird in folgenden Fällen der Fehlercode INVALID_CLIENT_IP zurückgegeben:
- der Webhook-Server wurde von einem Localhost in der Entwicklungsumgebung getestet
- Ihre App läuft in der 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 (empfohlene Vorgehensweise):
- 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 zur Liste der zulässigen IP-Adressen hinzu.
Ausführliche Informationen über das Arbeiten mit einem Proxyserver finden Sie in der Simfony-Dokumentation.
War dieser Artikel hilfreich?
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.