Zum Inhalt springen
  • Dunkel
  • Hell
  • System

Refund-Pattern

Generisches Pattern für Reward-Actions, die bei Fehler die Channel-Points zurückerstatten sollen. Beispiele: !skipsong wenn Spotify nicht antwortet, !customtitle wenn Twitch den String ablehnt, !showcat wenn OBS offline ist.

Update Redemption Status

Twitch Rewards Update Redemption Status

Setzt eine Redemption auf Fulfilled (akzeptiert) oder Canceled (Refund).

Reward ID %rewardId% (vom Trigger automatisch)
Redemption ID %redemptionId%
Status Fulfilled / Canceled

Sobald der Trigger Channel Reward > Reward Redemption feuert, sind Argument %rewardId% Reward-GUID: bezieht sich auf das Reward-Template. Variablen-Doku und Argument %redemptionId% Einzelne Redemption: die spezifische Einlösung. Variablen-Doku bereits gesetzt. Die Felder im Standard belassen reicht.

StatusEffekt
FulfilledReward gilt als erfüllt. Points bleiben abgezogen, Reward verschwindet aus Queue.
CanceledReward gilt als abgelehnt. Channel-Points werden zurückerstattet. Reward verschwindet aus Queue mit Cancelled-Status.
UnfulfilledReward bleibt in der Queue (selten gebraucht: für späteres Approval).
  1. 1 Tatsächliche Aktion (Spotify-API, OBS-Source-Toggle, Set Channel Title …)
  2. 2 If/Else: <Erfolgs-Check> Equals false
    1. Then 2a Update Redemption Status: Canceled
    2. Then 2b Send Message: "@%user% hat nicht geklappt, Points zurück."
    3. Then 2c Break
  3. 3 Update Redemption Status: Fulfilled
  4. 4 Send Message: "<Erfolgs-Nachricht>"

Fetch URL für die Spotify-Skip-API. Wenn Spotify nicht antwortet, refunden wir.

  1. 1 Fetch URL: POST https://api.spotify.com/v1/me/player/next (Response in %api%)
  2. 2 If/Else: %api% Is Null or Empty
    1. Then 2a Update Redemption Status: Canceled
    2. Then 2b Send Message: "@%user% Spotify nicht erreichbar, Points zurück."
    3. Then 2c Break
  3. 3 Update Redemption Status: Fulfilled
  4. 4 Send Message: "⏭️ @%user% hat den Song geskipt!"

Twitch hat zwei Modi für Rewards (Setting im Reward selbst):

ModusVerhalten
Skip Request Queue = aktivReward wird sofort fulfilled. Du brauchst Update Redemption Status: Fulfilled nicht. Twitch übernimmt. Du brauchst aber Canceled für Refunds.
Skip Request Queue = inaktivReward landet in der Approval-Queue. Du musst manuell Fulfilled setzen am Ende einer erfolgreichen Action.

Empfehlung: Skip Request Queue aktiv lassen und nur Cancel-Refunds eigenständig auslösen: dann ist die Action schlanker.

  • Reward in Twitch-Dashboard angelegt: Update Redemption Status schlägt mit Authentication-Fehler still fehl. Reward in SB neu anlegen.
  • Vergessen Fulfilled zu setzen: bei Skip Queue = inaktiv bleibt das Reward in der Queue und Twitch zeigt es als “ausstehend”.
  • Race-Conditions: bei mehreren Rewards parallel kann sich %rewardId% zwischen Sub-Actions ändern, wenn du eine andere Sub-Action mit Reward-Lookup hast. Lösung: am Action-Anfang per Set Argument in lokale Variablen kopieren.
  • Refund nicht sofort sichtbar: Twitch zeigt den Cancelled-Status manchmal erst beim nächsten Page-Reload. UX-Hinweis im Chat-Text einbauen.