Mit Amazon Pay für Alexa Skills können Sie Waren und Dienstleistungen wie Tickets für Filme oder Konzerte, Fahrzeugabholdienste, Lebensmittel und vieles mehr verkaufen. Sie können Kunden auf der ganzen Welt erreichen, indem Sie sich die natürliche Interaktion per Sprachsteuerung und eine nahtlose Bezahlung mit Amazon Pay zunutze machen.

Viele Entwickler nutzen Amazon Pay bereits, um eine Vielzahl von Produkten mithilfe von Sprachsteuerung zu verkaufen. Das britische Bahnunternehmen Virgin Trains kann über Alexa-fähige Geräte Bahnfahrkarten direkt an die Kunden verkaufen.

Nachdem Sie ein ansprechendes Angebot erstellt haben, sind Sie bereit zu lernen, wie Sie mit Ihrem Alexa Skill Einkommen generieren. In diesem Post erfahren Sie, wie Sie Amazon Pay in nur wenigen einfachen Schritten in Ihren Skill einbinden. Bevor Sie anfangen, melden Sie sich als Amazon Pay Händler an.

Die Amazon Pay für Alexa Skills APIs bestehen aus nur zwei Schritten: Setup und Charge. Im Folgenden werden wir Ihnen beide genauer erklären.

Setup

Setup erstellt eine Vereinbarung zwischen Ihrem Händlerkonto und dem Kunden, das BillingAgreement genannt wird. Dies wird in einem späteren Schritt dazu genutzt, dem Kunden den Kauf zu berechnen. Amazon Pay verwendet Alexa Skill Connections, damit Ihr Skill mit den Amazon Pay Dienstleistungen interagiert. Um die Vereinbarung zu erstellen, starten wir eine entsprechende Connections directive, um den Setup-Schritt durchzuführen.

let setupDirective = {
    'type': 'Connections.SendRequest',
    'name': 'Setup',
    'payload': {
        '@type': 'SetupAmazonPayRequest',
        '@version': '2',
        'sellerId': 'AEMGQXXXKD154',
        'countryOfEstablishment': 'US',
        'ledgerCurrency': 'USD',
        'checkoutLanguage': 'en-US',
        'needAmazonShippingAddress': true,
        'billingAgreementAttributes': {
            '@type': 'BillingAgreementAttributes',
            '@version': '2',
            'sellerNote': 'Thanks for shaving with No Nicks',
            'sellerBillingAgreementAttributes': {
                '@type': 'SellerBillingAgreementAttributes',
                '@version': '2'
            }
        }
    },
    'token': 'IK1yRWd8VWfF'
};

 

Erst legen wir die Anweisung Connections.SendRequest für den Amazon Pay Setup-Schritt fest. Die Anweisungen umfassen alle für Amazon Pay relevanten Informationen. Die wichtigsten sind die sellerId, die angibt, wer die Belastung initiiert; countryOfEstablishment und ledgerCurrency, die festlegen, wie die Zahlung vom Kunden eingezogen werden soll. Für die Definitionen aller anderen Felder lesen Sie unser umfassendes Handbuch, das unter den Quellen verlinkt ist.

Sie werden merken, dass wir noch nicht definiert haben, wie viel berechnet wird. Dies ist Teil des Schrittes Charge. Wenn dies innerhalb des Skills oder einer anderen Dienstleistung und mithilfe unserer Backend-APIs geschieht, erfolgt die Belastung des Kundenkontos „offline“.

Die Anweisung zu Ihrer Antwort hinzuzufügen, ist recht einfach:

 return handlerInput.responseBuilder
            .addDirective(setupDirective)
            .withShouldEndSession(true)
            .getResponse();

Hinweis: Der Grund dafür, dass wir die Sitzung beenden, liegt darin, dass der Connection.Request Ihre Skill-Sitzung beendet und sie mit einer Connection.Response erneut aufruft. Sollten Sie Ihre Sitzung nicht beenden oder keinen Wiederaufruf hinzufügen, führt dies zu einem Fehler.

Um die Antwort abzupassen, definieren Sie einfach einen Handler für die Connections.Response Aufforderung.

canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === "Connections.Response"
    && handlerInput.requestEnvelope.request.name === "Setup";
}

Die Antwort beinhaltet die billingAgreementId, die benötigt wird, um das Kundenkonto zu belasten.

Charge

Amazon Pay kann Ihnen bei verschiedenen Verwendungsszenarien behilflich sein. Wir klassifizieren sie als Zahlungsabläufe, Charge Now und Charge Later.

Mit Charge Now können Sie reale Waren (z. B. Tickets, Kleidung usw.) verkaufen und dem Kunden berechnen, während dieser noch mit Ihrem Skill interagiert. Diese Variante eignet sich perfekt für Einmalkäufe, bei denen Sie die exakte Rechnungssumme kennen. Das Starter Kit in dem Demo-Skill „No Nicks“ ist ein Beispiel für Charge Now.

Mit Charge Later können Sie ein BillingAgreement erstellen, in dem die bevorzugte Zahlungs- und Lieferadresse enthalten ist, sofern vorhanden. Mit dieser Vereinbarung können Sie dem Kunden den Kauf über die Backend-APIs von Amazon Pay zu einem späteren Zeitpunkt berechnen. Diese Variante ist ideal geeignet, wenn Sie die exakte Bestellsumme noch nicht kennen, z. B. bei Upselling-Möglichkeiten, Pay-As-You-Go-Szenarien oder Abonnements, bei denen das Konto eines Kunden in regelmäßigen Abständen belastet wird.


Im Workflow chargeNow können Sie auf ähnliche Weise eine charge-Aufforderung ausführen, indem Sie die billingAgreementId verwenden, die Sie in der setup-Antwort erhalten haben.

const billingAgreementId = responsePayload.billingAgreementDetails.billingAgreementId;
let directiveObject = {
    'type': 'Connections.SendRequest',
    'name': 'Charge',
    'payload': {
        '@type': 'ChargeAmazonPayRequest',
        '@version': '2',
        'sellerId': 'AEMGQXXXKD154',
        'billingAgreementId': billingAgreementId,
        'paymentAction': 'AuthorizeAndCapture',
        'authorizeAttributes': {
            '@type': 'AuthorizeAttributes',
            '@version': '2',
            'authorizationReferenceId': 'ml3qPJG3nC6c65UE',
            'authorizationAmount': {
                '@type': 'Price',
                '@version': '2',
                'amount': '9',
                'currencyCode': 'USD'
            },
            'transactionTimeout': 0,
            'sellerAuthorizationNote': '',
            'softDescriptor': 'No Nicks'
        },
        'sellerOrderAttributes': {
            '@type': 'SellerOrderAttributes',
            '@version': '2',
            'storeName': 'No Nicks',
            'sellerNote': 'Thanks for shaving with No Nicks'
        }
    },
    'token': 'WASv2lk4pdfI'
}

Für den Schritt charge müssen Sie mindestens die Gesamtsumme und die Währung festlegen, die vom Kunden gefordert werden soll. Weitere Informationen finden Sie in unserem umfassenden Handbuch in den unten aufgeführten Quellen.

Genau wie in der Phase setup fügen wir die Anweisung zum responseBuilder hinzu, wenn wir die Antwort erstellen.

 return handlerInput.responseBuilder
            .addDirective(directiveObject)
            .withShouldEndSession(true)
            .getResponse();

Definieren Sie ein weiteres Mal einen Handler für die Connections.Response-Aufforderung

canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === "Connections.Response"
    && handlerInput.requestEnvelope.request.name === "Charge";
}

Die Antwort auf die Connections-Aufforderung wird Ihnen zeigen, ob die Belastung des Kundenkontos erfolgreich war oder ob es ein Problem gegeben hat.

Nach einem erfolgreichen Kauf sollten Sie als Bestellbestätigung eine Karte an die Alexa-App des Kunden schicken, in der alle Details der Bestellung enthalten sind.

var confirmationCardResponse = 'Your order has been placed.\n' + 'Products: 1 Starter Kit \n' + 'Total amount: $9.00\n' + 'Thanks for shaving with No Nicks\n' + 'www.nonicks.com' return handlerInput.responseBuilder .speak( config.confirmationIntentResponse ) .withStandardCard( 'Order Confirmation Details', confirmationCardResponse, config.logoURL ) .withShouldEndSession( true ) .getResponse( );

Mit nur einigen wenigen Schritten können Sie so Zahlungen für physische Produkte oder Dienstleistungen in einem Alexa Skill entgegennehmen.

Fangen Sie noch heute an: Integrieren Sie Amazon Pay in Ihren Alexa Skill und reihen Sie sich in die immer länger werdende Liste von Händlern ein, die Voice Commerce zur Priorität machen. Wir sind gespannt auf Ihre Ergebnisse!

Quellen