Anzeigen:
Modul: Payment

Verfügbar ab Revision AppServer 108571, ChatServer 108571

Mit einer Instanz von PaymentAccess kann eine App auf Aktionen zugreifen, die mit Echtgeld zu tun haben.

Die PaymentAccess-Instanz erhält man über das KnuddelsServer-Objekt mit KnuddelsServer.getPaymentAccess()

Übersicht

Methoden

startKnuddelPurchase

(
  • user
  • amount
  • [parameters]
)

Verfügbar ab Revision AppServer 108571, ChatServer 108571

Öffnet für den angegebenen User den Kauf-Dialog "Knuddel-Direktkauf für Euros" entsprechend dem angegebenen Knuddel-Betrag. Gibt es kein Produkt, welches diesem Betrag genau entspricht, so wird das nächst höhere (bzw. das höchste) Produkt genommen. Die Aktion ist nur erlaubt, wenn der User bereits mindestens einen Knuddel an die App überwiesen hat: user.getKnuddelAccount().getTotalKnuddelAmountUserToApp() und der User im App-Channel online ist.

Die Methode wirft Exceptions:

  • bei fehlendem User
  • fehlendem oder ungültigem KnuddelAmount Wert
  • wenn die customMessage oder der transferReason zu lang ist
  • wenn der User noch nicht mindestens einen Knuddel an die App überwiesen hat
  • wenn der User nicht im Channel online ist

Darüber hinaus gibt es kein Feedback, ob die Aktion erfolgreich war, ausser der User kauft ein Produkt und transferriert die Knuddel zur App / zum Account, wobei die üblichen Hooks aufgerufen werden (jenachdem, was die App implementiert hat und welcher Modus [Parameter: toAccount] verwendet wird):

Parameter:

  • user User
  • amount KnuddelAmount

    Erlaubte Werte: 1 bis 100.000 (das größte Produkt ist aktuell 50.000 Knuddel)

  • [parameters] Object optional
    • [customMessage] String optional

      Nachricht zur Anzeige im Kaufdialog (z.B. "Du hast nicht genug Knuddel um teilzunehmen!"). Einfacher Text. Hier ist keinerlei Formatierung möglich. Limit: 200 Zeichen.

    • [transferReason] String optional

      transferReason für den /appknuddel-Transfer nach dem Kauf. Der transferReason wird ebenfalls in /knuddelaccount des Users angezeigt. Default: "Knuddel-Kauf". Limit: 200 Zeichen.

    • [toAccount] Boolean optional

      Steuert den Transfer der gekauften Knuddel zur App: (Default: false)

      • Wenn true, dann wird der angegebene Knuddel-Betrag nach dem Kauf automatisch und ohne Bestätigung auf den KnuddelAccount des Users übertragen. Dies geschieht unabhängig davon, ob die App den onBeforeKnuddelReceived-Hook implementiert hat. Nach dem Transfer wird onAccountReceivedKnuddel aufgerufen. Der User erhält zusätzlich eine Nachricht, dass seine gekauften Knuddel nun auf seinem Account sind.
      • Wenn false, dann wird nach dem Kauf /appknuddel APP-BOT:AMOUNT:TRANSFER-REASON gestartet. Dabei wird dem User das übliche /appknuddel-Bestätigungs-Popup angezeigt.

Beispiel:

KnuddelsServer.getPaymentAccess().startKnuddelPurchase(user, new KnuddelAmount(100), {
            customMessage: 'Du hast nicht genug Knuddel für den Glitzerstaub.', // optional
            transferReason: 'Glitzerstaub', // optional
            toAccount: false // optional
});