Wie implementiere ich eine Zahlung mit Alexa Skills?

Melden
  1. Grundlagen und Voraussetzungen für In-Skill-Purchases
  2. Integration der Zahlung im Code des Alexa Skills
  3. Beispielimplementation zum Auslösen eines Kaufs
  4. Verarbeitung der Kaufantwort
  5. Zusätzliche Hinweise und empfohlene Vorgehensweisen
  6. Zusammenfassung

Das Implementieren einer Zahlung in einem Alexa Skill kann den Benutzern erlauben, Premium-Inhalte, Abonnements oder digitale Produkte direkt über Sprachbefehle zu kaufen. Amazon bietet dafür das In-Skill-Purchase (ISP) SDK an, welches die Integration von digitalem Zahlungsverhalten unterstützt. Im Folgenden wird ausführlich erklärt, wie man eine Zahlung im Alexa Skill Schritt für Schritt umsetzt.

Grundlagen und Voraussetzungen für In-Skill-Purchases

Bevor Sie eine Zahlung in Ihrem Alexa Skill implementieren, müssen Sie sicherstellen, dass Ihr Konto für In-Skill-Purchases (ISP) freigeschaltet ist. Dies erfolgt über das Alexa Developer Console und erfordert die Akzeptanz der Richtlinien und Bedingungen von Amazon für den Verkauf digitaler Produkte. Außerdem sollten Sie einen Skill entwickelt haben, der Funktionen anbietet, die mit kostenpflichtigen Inhalten oder Abonnements verbunden sind.

Um Zahlungen zu ermöglichen, müssen Sie außerdem In-Skill-Products in Ihrem Skill anlegen. Amazon unterscheidet dabei verschiedene Typen:

Diese Produkte legen Sie in der Developer Console unter dem Bereich "In-Skill Products" an. Jedes Produkt erhält eine ID, die Sie später im Code verwenden.

Integration der Zahlung im Code des Alexa Skills

Nach Einrichtung der In-Skill-Produkte und Freischaltung können Sie im Skill-Code die notwendigen Schnittstellen nutzen, um Zahlungen anzustoßen und abzuwickeln. Für Node.js Skills steht das ask-sdk Paket zur Verfügung, das spezielle Klassen und Funktionen für In-Skill-Purchases mitbringt.

Im Wesentlichen finden sich drei Hauptphasen im Zahlungsprozess: Abfrage, Kauf-Initiierung und Kaufbestätigung.

Zunächst sollten Sie prüfen, ob der Nutzer das Produkt bereits besitzt. Dies erreichen Sie mit der API getEntitlements, die verrät, welche Produkte der Nutzer erworben hat.

Um einen Kauf zu initiieren, senden Sie die entsprechenden Direktive über die Antwort an Alexa, sodass Alexa die Kaufabfrage an den Nutzer stellt.

Nach Abschluss des Kaufs (entweder Erfolg oder Abbruch) erhalten Sie ein Ereignis, das dem Skill gemeldet wird. Dort sollten Sie den Status auswerten und entsprechend darauf reagieren.

Beispielimplementation zum Auslösen eines Kaufs

Hier ein vereinfachtes Beispiel in Node.js für das Auslösen eines Kaufs innerhalb eines Intent Handlers:

const Alexa = require(ask-sdk-core);const BuyPremiumIntentHandler = { canHandle(handlerInput) { return Alexa.getRequestType(handlerInput.requestEnvelope) === IntentRequest && Alexa.getIntentName(handlerInput.requestEnvelope) === BuyPremiumIntent; }, handle(handlerInput) { const productId = amzn1.adg.product.your-product-id; // ID aus der Developer Console // Prepare directive to start purchase return handlerInput.responseBuilder .addDirective({ type: Connections.SendRequest, name: Buy, payload: { InSkillProduct: { productId: productId } }, token: productId }) .getResponse(); }};

Diese Direktive veranlasst Alexa, den Kaufdialog mit dem Nutzer zu starten — Alexa fragt dann z.B. nach einer Bestätigung und Zahlungsdetails.

Verarbeitung der Kaufantwort

Nach der Kaufaufforderung bekommen Sie ein Connections.Response-Ereignis zurück, welches Sie abfangen müssen, um zu prüfen, ob der Kauf erfolgreich war. Ein entsprechender Handler könnte wie folgt aussehen:

const PurchaseResponseHandler = { canHandle(handlerInput) { return Alexa.getRequestType(handlerInput.requestEnvelope) === Connections.Response && (handlerInput.requestEnvelope.request.name === Buy || handlerInput.requestEnvelope.request.name === Upsell); }, handle(handlerInput) { const purchaseResult = handlerInput.requestEnvelope.request.payload.purchaseResult; if (purchaseResult === ACCEPTED) { // Erfolg: Premium-Funktion aktivieren

const speechText = Vielen Dank für Ihren Kauf! Sie haben nun Zugriff auf Premium-Funktionen.;

return handlerInput.responseBuilder .speak(speechText) .getResponse(); } else if (purchaseResult === DECLINED) { // Kauf abgelehnt

const speechText = Der Kauf wurde nicht abgeschlossen. Sie können weiterhin die kostenlosen Funktionen nutzen.;

return handlerInput.responseBuilder .speak(speechText) .getResponse(); } else { // Kauf fehlgeschlagen oder abgebrochen const speechText = Der Kauf konnte leider nicht durchgeführt werden.; return handlerInput.responseBuilder .speak(speechText) .getResponse(); } }};

const speechText = Vielen Dank für Ihren Kauf! Sie haben nun Zugriff auf Premium-Funktionen.;

const speechText = Der Kauf wurde nicht abgeschlossen. Sie können weiterhin die kostenlosen Funktionen nutzen.;

Mit diesem Handling können Sie direkt auf den Kaufstatus reagieren und beispielsweise die Skill-Logik entsprechend anpassen.

Zusätzliche Hinweise und empfohlene Vorgehensweisen

Es ist sinnvoll, vor einem erneuten Kauf zu prüfen, ob der Nutzer das Produkt bereits besitzt, um unnötige Anfragen zu vermeiden. Das kann durch einen Aufruf der getEntitlements-API innerhalb Ihres Handlers erfolgen.

Außerdem müssen Sie Ihre Skill-Testing-Umgebung entsprechend konfigurieren. Amazon stellt dafür ein Testkonto bereit, das virtuelle Käufe simuliert, damit keine echten Transaktionen nötig sind.

Denken Sie daran, in Ihrer Skill-Beschreibung klar auf mögliche Kosten hinzuweisen, da Amazon hier Anforderungen an die Offenlegung von Zahlungsinformationen stellt.

Zur Umsetzung in anderen Programmiersprachen oder mit anderen SDK-Versionen bieten die Amazon Entwicklerdokumentationen ausführliche Beispiele und Guides.

Zusammenfassung

Durch die Integration von In-Skill-Purchases können Sie Ihren Alexa Skill um monetäre Funktionen erweitern. Die Kernschritte sind das Anlegen von In-Skill-Produkten, das Auslösen von Kauf-Dialogen über Connections.SendRequest, sowie die Verarbeitung der Kaufantworten innerhalb von Connections.Response-Handlern. Dabei sollten Sie stets den Kaufstatus überprüfen und Ihre Skill-Logik entsprechend anpassen, um ein nahtloses Nutzererlebnis zu gewährleisten.

Weitere Informationen finden Sie auch in der offiziellen Amazon-Dokumentation zu In-Skill-Purchases: https://developer.amazon.com/en-US/docs/alexa/in-skill-purchases/understand-in-skill-purchases.html

0

Kommentare