Immer wenn ein Benutzer eine Zahlung storniert, sendet der Xsolla-Server einen Webhook inklusive Zahlungsinformationen.
$request = array(
'notification_type' => 'refund',
'purchase' => array(
'virtual_currency' => array(
'name' => 'Coins',
'quantity' => 100,
'currency' => 'USD',
'amount' => 9.99
),
'total' => array(
'currency' => 'USD',
'amount' => 9.99
)
),
'user' => array(
'ip' => '127.0.0.1',
'phone' => '18777976552',
'email' => 'email@example.com',
'id' => '1234567',
'country' => 'US'
),
'transaction' => array(
'id' => 87654321,
'payment_date' => '2014-09-23T19:25:25+04:00',
'payment_method' => 1380,
'dry_run' => 1
),
'refund_details' => (
'code' => 1,
'reason' => 'Fraud'
),
'payment_details' => array(
'payment' => array(
'currency' => 'USD',
'amount' => 9.99
),
'vat' => array(
'currency' => 'USD',
'amount' => 0
),
'payout_currency_rate' => 1,
'payout' => array(
'currency' => 'USD',
'amount' => 9.49
),
'xsolla_fee' => array(
'currency' => 'USD',
'amount' => 0.19
),
'payment_method_fee' => array(
'currency' => 'USD',
'amount' => 0.31
)
)
);
curl -v https:
-X POST \
-H 'Content-Type:application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \
-d '
{
"notification_type":"refund",
"purchase":{
"virtual_currency":{
"name": "Coins",
"quantity":10,
"currency":"USD",
"amount":100
},
"subscription":{
"plan_id": "b5dac9c8",
"subscription_id": "10",
"date_create": "2014-09-22T19:25:25+04:00",
"currency": "USD",
"amount": 9.99
},
"checkout":{
"currency":"USD",
"amount":50
},
"virtual_items":{
"items":[
{
"sku": "test_item1",
"amount":1
}
],
"currency":"USD",
"amount":50
},
"total":{
"currency":"USD",
"amount":200
}
},
"user": {
"ip": "127.0.0.1",
"phone": "18777976552",
"email": "email@example.com",
"id": "1234567",
"name": "Xsolla User",
"country": "US"
},
"transaction":{
"id":1,
"external_id":1,
"dry_run":1,
"agreement":1
},
"refund_details":{
"code":1,
"reason":"Fraud"
},
"payment_details":{
"xsolla_fee":{
"currency":"USD",
"amount":"10"
},
"payout":{
"currency":"USD",
"amount":"200"
},
"payment_method_fee":{
"currency":"USD",
"amount":"20"
},
"payment":{
"currency":"USD",
"amount":"230"
}
}
}'
Die vollständige Liste der Parameter finden Sie in der API-Referenz.
Immer wenn ein Abonnement gekündigt wird, sendet der Xsolla-Server einen Webhook.
Beispiel für eine Anfrage
<?php
$request = array(
'notification_type' => 'cancel_subscription',
'user' => (
'id' => '1234567',
'name' => 'Xsolla User'
),
'subscription' => (
'plan_id' => 'b5dac9c8',
'subscription_id' => '10',
'product_id' => 'Demo Product',
'date_create' => '2014-09-22T19:25:25+04:00',
'date_end' => '2015-01-22T19:25:25+04:00',
)
);
$ curl -v 'https:
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \
-d '{
"notification_type":"cancel_subscription",
"user":{
"id":"1234567",
"name":"Xsolla User"
},
"subscription":{
"plan_id":"b5dac9c8",
"subscription_id":"10",
"product_id":"Demo Product",
"date_create":"2014-09-22T19:25:25+04:00",
"date_end":"2015-01-22T19:25:25+04:00"
}
}'
Die vollständige Liste der Parameter finden Sie in der API-Referenz.
Gehen Sie folgendermaßen vor, um einen Webhook-Handler zu testen:
- Rufen Sie die Moduleinstellungen in Ihrem Kundenportal auf.
- Gehen Sie zur Registerkarte Testen.
- Geben Sie die Testdaten ein und klicken Sie auf Test. Der Xsolla-Server wird alle möglichen Webhooks senden.
- Im Falle einer gültigen Antwort wird der Test grün und im Falle eines Fehlers rot gekennzeichnet.
Xsolla-Sandbox ist eine eigenständige Umgebung, welche alle Funktionen der Live-Umgebung mit Ausnahme echter Zahlungen unterstützt. Sie können auf den Sandbox-Modus zugreifen, indem Sie "mode" = "sandbox" beim Abrufen des Tokens versenden.
Gehen Sie folgendermaßen vor, um eine Kartenzahlung zu testen:
- Rufen Sie den Store im Sandbox-Modus auf.
- Wählen Sie den Gegenstand aus, den Sie erwerben möchten.
- Klicken Sie auf Kredit-/Debitkarten.
- Geben Sie die Kreditkartendaten aus der nachfolgenden Tabelle ein. Geben Sie alle Werte in die verbleibenden Felder ein. Sie können auch falsche Angaben (Kartennummer, Ablaufdatum oder CVV) angeben, um einen Fehler zu generieren.
Liste der Bankkarten, die für Testzwecke verwendet werden können
Wichtig: Sandbox-Kartenzahlungen können lediglich in USD, EUR, RUB, GBP, SGD, HKD oder THB getätigt werden.
Um das Modul nach dessen erfolgreichem Test zu veröffentlichen, öffnen Sie dessen Einstellungen im Kundenportal, gehen Sie zur Registerkarte Veröffentlichen und klicken Sie auf Ein.
Wichtig: Um echte Zahlungen akzeptieren zu können, müssen Sie Folgendes tun:
- Entfernen Sie den "sandbox"-Modus.
- Unterzeichnen Sie die Vereinbarung.