Freigeben über


Zahlungsabwicklung ohne Beleg (Legacy Economy)

Wichtig

Economy v1-APIs befinden sich im Wartungsmodus und erhalten keine neuen Features, nur Fehlerbehebungen. Die v1-APIs werden auf absehbare Zeit beibehalten. Weitere Informationen zur nächsten Version von PlayFab Economy finden Sie in der Übersicht über Die Wirtschaft v2 !

Zusätzlich zur Bestätigungsüberprüfung für verschiedene Plattformen bietet PlayFab einen Mechanismus zum Aktivieren von Käufen über Zahlungsanbieter, die keine Beleg- oder berechtigungsbasierten Systeme verwenden. Dies betrifft Anbieter wie Facebook, PayPal, Xsolla und Steam.

Dieses Tutorial führt Sie durch die Verwendung dieses Zahlungssystems im Warenkorbstil und zeigt Ihnen folgendes:

  • Definieren Sie die Waren, die der Spieler kaufen möchte.

  • Verarbeiten Sie den Player mit ihrem gewählten Anbieter.

  • Überprüfen Sie, ob die Zahlung erfolgreich verarbeitet wurde, und fügen Sie die entsprechenden Elemente zum Inventar des Spielers hinzu.

  • Darüber hinaus behandelt das Tutorial den Teil des Prozesses des Spieleranbieters, um Ihnen einen vollständigen Überblick darüber zu geben, wie Sie den Kauf abschließen.

Die folgende Abbildung zeigt eine Zusammenfassung der API-Aufrufe, die im Zahlungsfluss verwendet werden.

PlayFab : Zahlungs-API-Fluss

Einrichten von Zahlungsanbietern

Bevor wir mit der Logik für die tatsächliche Verarbeitung von Zahlungen beginnen, müssen Sie zunächst ihre beabsichtigten Zahlungsanbieter festlegen.

Gehen Sie dazu folgendermaßen vor:

  • Wählen Sie Ihr Spiel im PlayFab-Spiel-Manager aus.
  • Wählen Sie die Registerkarte Add-Ons aus .

Dadurch gelangen Sie zu unserem Add-Ons Marketplace, wo Sie alle Integrationen von Drittanbietern finden, einschließlich Zahlungsanbietern.

Notiz

Einige Anbieter wie Facebook und Steam erledigen mehr als nur Zahlungen, und Sie finden sie im Abschnitt Plattformen dieses Tutorials.

  • Wählen Sie die Anbieter aus, die Sie verwenden möchten.
  • Wählen Sie dann jeweils die Option Installieren aus.
  • Geben Sie die angeforderten Informationen ein (in der Regel eine Anwendung und einen geheimen Schlüssel), aber jeder Anbieter hat seine eigenen eindeutigen Anforderungen.

Notiz

Diese Informationen ermöglichen es uns, mit ihrem Dienst in Ihrem Namen zu kommunizieren, sodass wir Käufe initiieren und deren status überprüfen können.

  • Sobald dies abgeschlossen ist, können Sie mit der Implementierung des Zahlungsflusses beginnen.

PlayFab-API-Aufrufe

Für den Client ist die Reihenfolge der Aufrufe für diesen Prozess bei den meisten Zahlungsanbietern ohne Empfang ähnlich.

  • StartPurchase : Erstellt die Liste der Waren für den Kauf.
  • PayForPurchase : Richtet den Zahlungsanbieter ein und sperrt die Zahlungspreise.
  • ConfirmPurchase : Überprüft, ob der Kauf erfolgreich abgeschlossen wurde, und stellt bei Bedarf sicher, dass die Waren dem Inventar des Spielers hinzugefügt werden.

Notiz

Eine Ausnahme bildet Xsolla, die am Ende dieses Tutorials separat behandelt wird.

In den folgenden Beispielen werden Felder wie {{TitleID}} und {{SessionTicket}}angezeigt. Sie müssen diese Werte in Ihrem eigenen Code durch die entsprechenden Werte für Ihr Spiel und das Authentifizierungsticket des Spielers ersetzen.

Initiieren des Kaufs

Während des gesamten Einkaufsflows arbeiten Sie mit einem definierten Satz von Waren aus Ihrem Spielkatalog, die der Spieler kaufen möchte.

Dies ist der Warenwagen, den Sie durch einen Aufruf der PlayFab-Client-API-Methode StartPurchasedefinieren, um den Prozess zu starten.

PlayFabClientAPI.StartPurchase(new StartPurchaseRequest() {
    CatalogVersion = "IAP1_0",
    Items = new List<ItemPurchaseRequest>() {
        new ItemPurchaseRequest() {
            ItemId = "BigBagOfGold",
            Quantity = 1,
            Annotation = "Purchased via in-game store"
        }
    }
}, result => {
    // Handle success
}, error => {
    // Handle error
});

In diesem Beispiel laden wir den Warenkorb mit einem im Spielkatalog definierten Element mit der ID - IAP1_0 ein BigBagOfGold. Dies ist die ItemId, wie im Spielkatalog definiert.

Der Spieler möchte nur eine dieser Optionen erwerben. Die Anmerkung wird verwendet, um anzugeben, wie das Element im Spielerbestand gewickelt wurde, was für eine spätere Überprüfung nützlich ist.

Notiz

Es ist möglich, anzugeben, dass für diesen Kauf die Preise aus einem Store verwendet werden, den Sie in Ihrem Spiel definiert haben, indem Sie den StoreId-Parameter einschließen.

Die Rückgabe des StartPurchase-Aufrufs enthält viele Informationen – einschließlich der DisplayName Werte und Description für die Elemente aus Ihrem Katalog, alle definierten Preise für diese sowie die virtuellen Währungssalden des Spielers.

Die wichtigsten Dinge, die Sie für den nächsten Schritt benötigen, sind jedoch die OrderId (die diesen Kauf eindeutig identifiziert) und den spezifischen Anbieter, den Sie verwenden möchten, der sich in der PaymentOptionsbefindet.

Notiz

Nur Zahlungsanbieter, die Sie für Ihren Titel aktiviert haben, werden im PaymentOptionsangezeigt.

{
  "code": 200,
  "status": "OK",
  "data": {
    "OrderId": "1234567890ABCDEF",
    "Contents": [{
      "ItemId": "BigBagOfGold",
      "ItemInstanceId": "ABCDEF1234567890",
      "DisplayName": "A hefty sack of gold",
      "Description": "Why, it’s a stonking great bag of shiny!",
      "VirtualCurrencyPrices": {
        "RM": 999
      }
    }],
    "PaymentOptions": [{
        "Currency": "RM",
        "ProviderName": "Facebook",
        "Price": 999,
        "StoreCredit": 0
      },
      {
        "Currency": "RM",
        "ProviderName": "PayPal",
        "Price": 999,
        "StoreCredit": 0
      },
      {
        "Currency": "RM",
        "ProviderName": "Steam",
        "Price": 999,
        "StoreCredit": 0
      }
    ],
    "VirtualCurrencyBalances": {
      "VC": 0
    }
  }
}

Einrichten des Zahlungsanbieters: Webhookanbieter

Facebook

Normalerweise besteht der Flow an diesem Punkt darin, PlayFab mitzuteilen, welche Zahlungsanbieter verwendet werden. Dies ist so, dass der Dienst mit diesem Anbieter kommunizieren und Informationen zur Transaktion einrichten kann.

Facebook ist eine Ausnahme von diesem Verfahren. Es erfordert, dass der Kauf zuerst in ihrem Dienst initiiert wird. Danach kann ein Drittanbieterdienst wie PlayFab die Facebook bereitgestellte Transaktions-ID verwenden, um die status des Kaufs zu überprüfen.

Wenn Ihre Store-, Katalog- oder Element-IDs nicht alphanumerisch sind, müssen sie beim Erstellen der OpenGraphProduct URL HTML-/URL-codiert sein, wie im folgenden Code gezeigt.

FB.ui({
    method: 'pay',
    action: 'purchaseitem',
    product: "https://{{TitleId}}.playfabapi.com/OpenGraphProduct/{{TitleId}}/{{StoreId}}/IAP1_0/BigBagOfGold",
    request_id: "1234567890ABCDEF"
}, function (response) {
    console.log('Payment completed', response);
    print(response);
    if (response.payment_id) {
        facebookPurchaseId = response.payment_id;
        payForOrder(); // This is a function call you need to write
                       // which makes the call to the Client API PayForPurchase
                       // (see below)
    }
});

Wenn Sie diesen Aufruf ausführen, denken Sie daran, dass beim Produkt in Facebook die Groß-/Kleinschreibung beachtet wird.

Insbesondere - die TitleId Sie durch die richtige Titel-ID für Ihr Spiel in PlayFab ersetzen müssen - ist in der Regel in Kleinbuchstaben in ihrem Dienst. Wenn Probleme mit Facebook nicht das richtige Produkt gefunden werden, versuchen Sie, das Produkt manuell mithilfe einer GET-Anforderung abzurufen, wie auf dieser Seite gezeigt.

Darüber hinaus müssen Sie auch sicherstellen, dass Sie die Werte von früher im Flow verwenden:

  • Der CatalogID des von PlayFab definierten Katalogs, der den zu erwerbenden Artikel enthält (IAP1_0).

  • Der itemID des Artikels im PlayFab-Katalog des Spiels, der gekauft werden soll (BigBagOfGold)

  • Die OrderID , die vom Aufruf StartPurchasevon zurückgegeben wird, zu Beginn dieses Prozesses (1234567890ABCDEF)

Bei einer erfolgreichen Antwort gibt Facebook eine payment_idzurück, die dann als ProviderTransactionId im Aufruf der Client-API-Methode PayForPurchaseverwendet werden kann.

const string paymentId = "_SOME_PAYMENT_ID" ;
PlayFabClientAPI.PayForPurchase(new PayForPurchaseRequest() {
    OrderId = "1234567890ABCDEF",
    ProviderName = "Facebook",
    Currency = "RM",
    ProviderTransactionId = paymentId
}, result => {
    // Handle success
}, error => {
    // Handle error
});

Dies sollte eine einfache Bestätigung zurückgeben.

{
    "code": 200,
    "status": "OK",
    "data": {
        "OrderId": "1234567890ABCDEF",
        "Status": "Init",
        "PurchaseCurrency": "RM",
        "PurchasePrice": 999,
        "CreditApplied": 0
    }
}

Dadurch wird die Schleife abgeschlossen, die PlayFab mit dem Kauf auf beiden Seiten der Gleichung verbindet, sodass wir die status abfragen können.

Weitere Informationen zum Facebook Zahlungssystem finden Sie im Facebook Developer Portal:https://developers.facebook.com/docs/payments/overview

Ein weiterer Aspekt von Facebook Zahlungen besteht darin, dass Titel Webhooks für Zahlungen verwenden müssen, um Echtzeitänderungsbenachrichtigungen an Zahlungs-status zu ermöglichen.

Dies ist im Facebook-Modell erforderlich, da die Zahlungen in einigen Fällen sehr lange dauern können. Glücklicherweise ist dies einfach. Geben Sie im Titelsetup in Faceboo Folgendes als Rückruf-URL ein.

https://{{TitleId}}.playfabapi.com/ThirdPartyPayments/FacebookPaymentUpdate

Dabei {{TitleId}} ist die Titel-ID für Ihr Spiel in PlayFab (z. B https://aaa.playfabapi.com/ThirdPartyPayments/FacebookPaymentUpdate. ).

Es ist nicht erforderlich, ein Token im Facebook-Setup anzugeben. Legen Sie einfach die Rückruf-URL fest, vergewissern Sie sich, dass Ihr PlayFab-Setup auf der Seite Facebook Add-Ons des Game Manager richtig ist, und Sie sind festgelegt.

Wenn Facebook diesen Webhook verwendet, um die status der Zahlung zu aktualisieren, wird die Bestellung status in PlayFab aktualisiert. Wenn es erfolgreich ist), werden die entsprechenden Elemente dem Spielerbestand hinzugefügt.

Notiz

Sicherheit: Beachten Sie, dass diese API eine Aufforderung für PlayFab ist, Facebook erneut aufzurufen und die Transaktion sicher zu authentifizieren und zu überprüfen. Es ist keine Hintertür für einen Hacker, Facebook Zahlungen zu umgehen.

Wenn Sie Facebook als Zahlungsanbieter verwenden, ist es dennoch wichtig, dass Ihr Kunde den Kauf bestätigt, wie hier gezeigt.

Einrichten des Zahlungsanbieters: Nicht-Webhookanbieter

Steam

Steam ist die einfachste Integration aller Zahlungsanbieter.

PlayFabClientAPI.PayForPurchase(new PayForPurchaseRequest() {
    OrderId = "1234567890ABCDEF",
    ProviderName = "Steam",
    Currency = "RM"
}, result => {
    // Handle success
}, error => {
    // Handle error
});

Als Ergebnis des PayForPurchase Aufrufs verwendet PlayFab die von Steam bereitgestellten Webmethoden, um den Kauf in diesem Dienst zu initiieren. Dies bewirkt, dass dem Benutzer das Dialogfeld zur Kaufbestätigung über den Steam-Client angezeigt wird.

Während Sie also die Antwort auf den Client-API-Aufruf PayForPurchase erhalten, wird der Benutzer aufgefordert, die Zahlung zu akzeptieren.

{
    "code": 200,
    "status": "OK",
    "data": {
        "OrderId": "1234567890ABCDEF",
        "Status": "Init",
        "PurchaseCurrency": "RM",
        "PurchasePrice": 999,
        "CreditApplied": 0
    }
}

Steam verwendet einen Rückrufmechanismus, um den Abschluss des Kaufvorgangs zu informieren, sodass Sie einen Rückrufhandler für den MicroTxnAuthorizationResponse_t Rückruf registrieren müssen.

Registrierte Steam-Entwickler können weitere Informationen zu diesem Prozess an dieser Stelle erhalten: https://partner.steamgames.com/documentation/MicroTxn#WebPurchasing.

Beim Empfang des Rückrufs sollte der Titel mit dem Anruf fortfahren, der ConfirmPurchase im Abschnitt Letzter Schritt: Bestätigen des Kaufs angezeigt wird.

PayPal

Bei PayPal ist der PayForPurchase Anruf praktisch derselbe wie bei Steam.

PlayFabClientAPI.PayForPurchase(new PayForPurchaseRequest() {
    OrderId = "1234567890ABCDEF",
    ProviderName = "PayPal",
    Currency = "RM"
}, result => {
    // Handle success
}, error => {
    // Handle error
});

In diesem Fall gibt es jedoch keine praktische Clientanwendung, die die Zahlungsanforderung an den Spieler sendet.

Bei PayPal müssen Sie dem Spieler die PayPal-Schnittstelle präsentieren und ihn auffordern, zu überprüfen, ob er dem Kauf zustimmt. Im Hintergrund verwendet dieser Prozess jedoch PayPal Express Checkouts, da wir uns um alle Details kümmern.

Sie müssen dem Benutzer lediglich die Seite Zahlungsbestätigung anzeigen, die ihnen als PurchaseConfirmationPageURLzurückgegeben wird.

{
    "code": 200,
    "status": "OK",
    "data": {
        "OrderId": "1234567890ABCDEF",
        "Status": "Init",
        "PurchaseCurrency": "RM",
        "PurchasePrice": 999,
        "PurchaseConfirmationPageURL": "https://...",
        "CreditApplied": 0
    }
}

In diesem Fall sollte dies nach dem Schließen des Browserfensters darauf hindeuten, dass es an der Zeit ist, den Kauf in PlayFab zu bestätigen.

Letzter Schritt: Bestätigen des Kaufs

Der letzte Teil des Prozesses besteht darin, dass PlayFab den Kaufvorgang abschließt und die gekauften Gegenstände (falls vorhanden) dem Inventar des Spielers hinzufügt.

Bei einigen Anbietern weiß der Titel zu diesem Zeitpunkt bereits, ob der Kauf erfolgreich abgeschlossen wurde.

In jedem Fall fügt ein Aufruf der Client-API-Methode ConfirmPurchase die Elemente nur dem Spielerbestand hinzu, wenn die Zahlung erfolgt ist, und sie wurden noch nicht hinzugefügt.

PlayFabClientAPI.ConfirmPurchase(new ConfirmPurchaseRequest() {
    OrderId = "1234567890ABCDEF"
}, result => {
    // Handle success
}, error => {
    // Handle error
});

Wenn die Bestellung an diesem Punkt erfolgreich abgeschlossen wurde, durchlaufen wir die Elemente im Warenkorb, die Sie mit dem Aufruf der Client-API StartPurchaseeingerichtet haben.

Dadurch werden die Elemente dem Inventar des Spielers hinzugefügt und die Informationen zu den gekauften Elementen an den Titel zurückgegeben.

{
    "code": 200,
    "status": "OK",
    "data": {
        "OrderId": "1234567890ABCDEF",
        "Status": "Succeeded",
        "PurchaseDate": "2016-07-19T09:04:28Z",
        "Items": [{
            "ItemId": "BigBagOfGold",
            "ItemInstanceId": "ABCDEF1234567890",
            "CatalogVersion": "IAP1_0",
            "DisplayName": "A hefty sack of gold",
            "UnitCurrency": "RM",
            "UnitPrice": 999
        }]
    }
}

Transaktionszustände

Im Hintergrund gibt es viele Zustandsänderungen, die die Reihenfolge durchläuft. Die vollständige Liste finden Sie unten.

Notiz

Abhängig vom jeweiligen Anbieterprozess werden einige dieser Zustände nie in den Ergebnissen der drei Kaufprozess-API-Aufrufe angezeigt und werden hier aus Gründen der Vollständigkeit eingeschlossen.

  • CreateCart : Das Order-Objekt selbst wird zwar nicht in der Antwort an die Client-API StartPurchasezurückgegeben, aber es wurde zu diesem Zeitpunkt erstellt. Zu diesem Zeitpunkt werden die Artikel und Preise im Objekt gespeichert, es wurde jedoch nicht an einen Zahlungsanbieter übermittelt.

  • Init: Dies ist die status zurückgegeben, wenn die Bestellung an den Zahlungsanbieter übermittelt, aber noch nicht vom Spieler autorisiert wurde.

  • Genehmigt : Tritt kurz auf, nachdem der Spieler die Zahlung genehmigt hat, aber bevor PlayFab den Prozess der Platzierung der Elemente im Spielerbestand abgeschlossen hat. Es ist nur aus Gründen der Vollständigkeit in dieser Liste enthalten, da Titel niemals eine Reihenfolge mit diesem status sehen sollten.

  • Erfolgreich : Gibt an, dass die Bestellung erfolgreich abgeschlossen wurde. Der Spieler hat die Zahlung genehmigt, und alle Inventarelemente wurden dem Inventar dieses Spielers hinzugefügt.

  • FailedByProvider : Wenn der Anbieter die Zahlung aus irgendeinem Grund ablehnt (einschließlich des Spielers, der die Zahlung ablehnt), wird die Bestellung vom Anbieter als fehlgeschlagen betrachtet.

  • DisputePending : Der Zahlungsanbieter hat PlayFab über eine Streitigkeit über die zahlung informiert, die nicht gelöst wurde.

  • Rückerstattung ausstehend : Ein Zahlungsanbieter hat PlayFab benachrichtigt, dass eine Rückerstattungsanforderung gestellt wurde. Zu diesem Zeitpunkt ist die Rückerstattung noch nicht erfolgt.

  • Rückerstattung: Die Bestellung wurde zurückerstattet. Die meisten (wenn nicht alle) Zahlungsanbieter stellen diese Informationen auch direkt an den Entwickler bereit. Die status kann je nach einer Reihe von Faktoren variieren, z. B. ob es sich bei den Artikeln um Verbrauchsgüter handelt (die möglicherweise bereits verbraucht wurden).

  • RefundFailed : Eine Rückerstattung wurde angefordert, aber vom Zahlungsanbieter abgelehnt. PlayFab kann hierzu keine zusätzlichen Informationen bereitstellen . Wenn also weitere Details benötigt werden, sollte sich der Entwickler direkt an den Zahlungsanbieter wenden.

  • ChargedBack: Diese status variiert je nach Zahlungsanbieter und kann darauf hinweisen, dass eine Bestellung umstritten ist oder zurückgebucht wurde. Auch hier sollte der Zahlungsanbieter kontaktiert werden, um weitere Informationen zu den Einzelheiten der Bestellung zu erhalten.

  • FailedByPlayFab: Diese status weist darauf hin, dass beim Zahlungsvorgang ein unerwarteter Fehler aufgetreten ist. Wenn diese status Antwort angezeigt wird, sollte der Titel den vorherigen Zahlungs-API-Aufruf wiederholen. Wenn diese status weiterhin besteht, sollten Sie dieses Problem in unseren Supportforen veröffentlichen und alle Details zum Problem angeben (Titel-ID, PlayFab-ID, Bestell-ID).

Akzeptieren von Zahlungen mit Xsolla

Bei Xsolla ist der Prozess anders. Es wird nicht der oben genannte Codeflow verwendet, sondern stattdessen der Xsolla-Zahlungsfluss, wie hier beschrieben: https://developers.xsolla.com/doc/in-game-store/extensions/playfab-integration/.

Sie müssen über eine Händler-ID, eine Projekt-ID und einen Händler-API-Schlüssel von Xsolla verfügen, um Ihren Titel für die Verwendung des Zahlungsdiensts konfigurieren zu können.

  • Um zu beginnen, verwenden Sie den Link auf der Xsolla-Seite des Add-Ons Marketplace , um sich für ein Xsolla-Konto zu registrieren.

  • Sobald Sie diese Konfigurationsseite eingerichtet haben, besteht Der nächste Schritt darin, den Katalog der Waren im Xsolla-Dienst zu erstellen.

  • Stellen Sie sicher, dass die item_code für jedes Element in Xsolla mit einer Element-ID in Ihrem PlayFab-Katalog übereinstimmt. Dies sind die Bezeichner, die verwendet werden, um Ihren Kauf abzuschließen und die richtigen Elemente sicher zum Spielerbestand hinzuzufügen.

  • Informationen zum Einrichten ihrer Liste virtueller Elemente im Xsolla-Katalog finden Sie in der Dokumentation weiter oben in diesen Anweisungen.

Initiieren des Kaufs (Xsolla)

Sobald Sie bereit sind, einen Kauf zu tätigen, verwenden Sie den GetPaymentToken API-Aufruf, um ein Token vom Xsolla-Dienst anzufordern, indem Sie es als TokenProviderangeben.

PlayFabClientAPI.GetPaymentToken(new GetPaymentTokenRequest() {
    TokenProvider = "xsolla"
}, result => {
    // Handle success
}, error => {
    // Handle error
});

Der Aufruf gibt ein ProviderTokenzurück, bei dem es sich um das Xsolla-Token handelt, das Sie im nächsten Schritt benötigen, und ein PlayFab OrderId- zurück. Im Hintergrund initiiert dieser Aufruf die Transaktion mit Xsolla.

{
    "code": 200,
    "status": "OK",
    "data": {
        "ProviderToken": "1234567890ABCDEF",
        "OrderId": "1234567890ABCDEF"
    }
}

Abschluss des Kaufs (Xsolla)

Als Nächstes muss der Kunde das Token an Xsolla übergeben, um den Zahlungsvorgang zu starten. Sie können dieses Token mithilfe einer der folgenden URLs an Xsolla übergeben:

Sandbox-Zahlungen:

https://sandbox-secure.xsolla.com/paystation3/?access_token=[TOKEN]

Live-Zahlungen:

 https://secure.xsolla.com/paystation3/?access_token=[TOKEN]

Nachdem Sie dies ausgeführt haben, können Sie den Kauf über die Xsolla-Schnittstelle abschließen.

yrefer auf die Xsolla-Dokumentation in dem Link, den wir weiter oben in dieser Anleitung bereitgestellt haben, für alle Fragen zur Verwendung ihrer Schnittstelle.

Sobald dies geschehen ist, müssen Sie keine weiteren Maßnahmen ergreifen. Xsolla und PlayFab tauschen Webhookaufrufe aus. PlayFab erfüllt den Kauf, indem die gekauften Gegenstände in das Spielerinventar aufgenommen werden und die entsprechenden Ereignisse an PlayStream gesendet werden.

Sie können die Transaktion status überprüfen (siehe die vollständige Liste oben), indem Sie die Client-API GetPurchaseabfragen.

In den meisten Fällen sollte dieser Vorgang nicht mehr als 2-3 Sekunden dauern.

PlayFabClientAPI.GetPurchase(new GetPurchaseRequest()
{
    OrderId = "1234567890ABCDEF"
}, result =>
{
    // Handle success
}, error =>
{
    // Handle error
});
{
    "code": 200,
    "status": "OK",
    "data": {
        "OrderId": "1234567890ABCDEF",
        "PaymentProvider": "Xsolla",
        "TransactionStatus": "Succeeded",
        "PurchaseDate": "2017-06-07T00:00:00Z"
    }
}

Schlussnotizen

Eine Sache, die sie beachten sollten, ist, dass zahlungen bei einigen Anbietern sehr lange dauern können.

Wenn Sie feststellen, dass die status des Kaufs in der Antwort eines Aufrufs der Client-API ConfirmPurchase immer noch Initlautet, sollten Sie warten, bevor Sie erneut abfragen. Eine bewährte Methode besteht darin, zu Beginn des Prozesses zu speichern OrderId und dann ein exponentielles Backoff zu verwenden, wenn das Ergebnis abgefragt wird.

Wenn der status also Init ist, warten Sie eine Minute, bevor Sie den Aufruf der Client-API ConfirmPurchasewiederholen. Warten Sie dann zwei Minuten, dann vier, acht usw., bis Sie einen maximalen Wert erreicht haben. Das Einschließen einer Option zur Überprüfung auf abgeschlossene Transaktionen würde dem Benutzer dann eine Möglichkeit bieten, diesen Timer zurückzusetzen.

Schließlich ist es erwähnenswert, dass Sie den Sandboxmodus verwenden können, um Käufe bei einigen Zahlungsanbietern zu testen.

Aktivieren Sie dazu die Option Sandbox-Kauftests verwenden auf der Registerkarte Add-On Ihres Titels im PlayFab-Spiel-Manager.