Gegenstände zum Inventar hinzufügen basierend auf der Xsolla-Lösung
Xsolla bietet eine Lösung für die Implementierung des Spielerinventars basierend auf dem Ingame-Online-Shop-Produkt. Diese Lösung ermöglicht es Ihnen, alle Käufe und Benutzerprämien plattformübergreifend zu synchronisieren.
Sie können dem Spielerinventar Gegenstände hinzufügen, die über das Zahlungsportal eines Drittanbieters (z. B. In-App-Käufe über Google Play) erworben wurden.
Gegenstände werden dem Inventar hinzugefügt, wenn die API-Serverabfrage Benutzern Artikel gewähren aufgerufen wird. Wenn Sie Firebase für das Backend der Anwendung verwenden, nutzen Sie die vorgefertigte Cloud-Funktion:
- Fügen Sie die Cloud-Funktion zum Firebase-Projekt hinzu.
- Implementieren Sie die Logik für den Aufruf der Funktion.
Cloud-Funktion zum Firebase-Projekt hinzufügen
- Initialisieren Sie Ihr Firebase-Projekt.
- Importieren und konfigurieren Sie die Funktion zum Hinzufügen von Artikeln zum Inventar, wobei:
<MerchantID>
die Händler-ID ist. Diese finden Sie im Kundenportal:- unter Projekteinstellungen > Webhooks.
- unter Firmeneinstellungen > Firma.
- in der URL in der Adresszeile des Browsers auf einer beliebigen Seite im Kundenportal. Die URL weist das folgende Format auf:
https://publisher.xsolla.com/Händler-ID/Kundeportalabschnitt
.
<ProjectID>
die Projekt-ID ist. Diese finden Sie im Kundenportal:- neben dem Namen Ihres Projekts.
- unter Projekteinstellungen > Projekt-ID.
<ApiKey>
der API-Schlüssel ist. Diesen finden Sie im Kundenportal unter Firmeneinstellungen > API-Schlüssel oder Projekteinstellungen > API-Schlüssel.
Weitere Informationen über die Arbeit mit API-Schlüsseln finden Sie in der API-Referenz.
Wichtige Empfehlungen:
- Sie sind selbst dafür verantwortlich, den generierten API-Schlüssel zu speichern. Der API-Schlüssel wird im Kundenportal nur einmal angezeigt, nämlich dann, wenn er erstellt wird.
- Halten Sie Ihren API-Schlüssel geheim. Er gewährt den Zugang zu Ihrem persönlichen Konto und Ihren Projekten im Kundenportal.
- Der API-Schlüssel muss auf Ihrem Server gespeichert sein, niemals in Binärdateien oder im Frontend.
Funktionscode für das Hinzufügen von Gegenständen zum Inventar:
- js
const merchantId = "<MerchantID>";
const projectId = "<ProjectID>";
const apiKey = "<ApiKey>";
exports.redeem = functions.https.onRequest((request, response) => {
const sku = request.body.sku;
const quantity = request.body.quantity;
const userId = request.body.user_id;
const authHeader = Buffer.from(`${merchantId}:${apiKey}`).toString("base64");
const postData = JSON.stringify(
[{
"comment": "Purchased by Google Pay",
"platform": "xsolla",
"user": {
"id": userId,
},
"items": [{
"sku": sku,
"quantity": quantity,
}],
}]
);
const options = {
hostname: "store.xsolla.com",
port: 443,
path: `/api/v2/project/${projectId}/inventory/reward`,
method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": postData.length,
"Authorization": `Basic ${authHeader}`,
},
};
const req = https.request(options, (res) => {
if (res.statusCode == 200) {
response.status(200).send();
return;
}
if (res.statusCode == 404) {
response.status(404).send();
return;
}
if (res.statusCode == 401) {
response.status(401).send();
return;
}
response.status(400).send();
res.on("data", (d) => {
process.stdout.write(d);
});
});
req.on("error", (e) => {
response.status(500).send(e.message);
});
req.write(postData);
req.end();
});
- Stellen Sie die Funktion in einer Produktionsumgebung bereit, wie in diesem Beispiel gezeigt.
Funktion aus der Anwendung aufrufen
Um dem Inventar Gegenstände hinzufügen zu können, bedarf es einer Logik, mit der Sie die Funktion aus der Anwendung aufrufen können. Geben Sie redeem
als Funktionsnamen an, und übermitteln Sie die Parameter sku
, quantity
, user_id
an die Funktion.
Bei einigen Abrechnungsschnittstellen (z. B. In-App-Käufe über Google Play) muss die Logik für das Hinzufügen eines Gegenstands zum Inventar clientseitig initiiert werden. Implementieren Sie In diesem Fall eine clientseitige Methode zum Aufrufen der redeem
-Funktion.
Beispielsweise können Sie für eine Implementierung unter Android das Modul xsolla-googleplay-sdk verwenden. Damit können Sie über Google Play getätigte In-App-Käufe dem Inventar hinzufügen.
So übernehmen Sie das Beispiel für Ihr Projekt:
- Starten Sie Android Studio.
- Fügen Sie Ihrem Projekt das Modul xsolla-googleplay-sdk hinzu.
- Initialisieren Sie die Bibliothek. Fügen Sie dazu die folgende Zeile in den Quellcode Ihres Android-Projekts ein, wobei
<your-deployment-host>
dem Host der Cloud-Funktions-URL entspricht (z. B.:https://us-central1-xsolla-sdk-demo.cloudfunctions.net
):
- kotlin
InventoryAdmin.init("<your-deployment-host>")
Die URL der Cloud-Funktion wird in der Firebase-Befehlszeile angezeigt, nachdem die Funktion in der Produktionsumgebung ausgeführt wurde. Die Funktions-URL ist außerdem in der Firebase-Konsole unter
- Implementieren Sie den Aufruf der Methode
InventoryAdmin.grantItemToUser (sku, userId, quantity, callback)
entsprechend der Anwendungslogik. Der Rückruf liefert Daten darüber, ob der Gegenstand dem Inventar erfolgreich hinzugefügt wurde.
War dieser Artikel hilfreich?
Diese Seite bewerten
Jetzt nicht
Vielen Dank für Ihr Feedback!
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.