So erstellen Sie eine Abonnementbox mit Stamplay

Was Sie erstellen werden

Abo-Boxen sind heutzutage ein immer beliebteres Geschäft. Sie finden sie für alles, von Pflegeprodukten über gesunde Snacks, Kinderspiele bis hin zu Eis. In diesem Tutorial zeige ich Ihnen, wie Sie schnell eine Web-App erstellen, um zu testen, ob Sie die ersten 1.000 Kunden für Ihre Abonnementbox-Idee finden!

Unsere App ist vom Cocktail-Abonnement-Service Shaken inspiriert und bietet folgende Funktionen:

  • Melden Sie sich über Facebook an.
  • Aktivieren Sie wiederkehrende Zahlungen über Stripe.
  • Abonnements anhalten und erneut aktivieren.
  • Senden Sie Transaktions-E-Mails.
  • Hinzufügen von Benutzern zu einer MailChimp-Liste.

In diesem Lernprogramm erfahren Sie, wie Sie ein Backend mit vollem Funktionsumfang konfigurieren und ein AngularJS-Frontend erstellen, das mit diesem verbunden ist.

Die vollständige Codebase des Frontends finden Sie auf GitHub.

Coupon: Stamplay hat Tuts + -Lesern einen exklusiven Gutschein zur Verfügung gestellt 6 Monate des Plusplans kostenlos (Wert 600 $). Der Gutscheincode lautet CODETUTSPLUS und es läuft am 10. Oktober aus. Melden Sie sich jetzt kostenlos an, um es einzulösen.

1. Stamplay: API Lego für Entwickler

Stamplay ist eine webbasierte Entwicklungsplattform, die Entwicklern eine unglaublich schnelle Möglichkeit bietet, vollständig integrierte Anwendungen zu erstellen. Mit Stamplay können Sie problemlos mit vielen verschiedenen APIs kommunizieren, so dass Sie dies nicht müssen.

Stamplay basiert auf dem Konzept der Komponenten. Komponenten sind die Bausteine ​​unserer Anwendung. Wir können die verschiedenen verfügbaren Werkzeuge unter sehen Aufgaben> Komponenten.

Sobald Sie angemeldet sind, werden Sie mit diesem einfachen und eleganten Dashboard begrüßt. Wir erstellen hier eine Anwendung. Nennen Sie es, wie Sie möchten, aber denken Sie daran, dass wir diesen Namen zur Identifizierung unserer Anwendung verwenden. Diese wird auch als URL für unsere Anwendung verwendet, wenn sie gehostet wird.

In unserem Fall verwenden wir "tutsplus" und unsere Anwendung wird auf https://tutsplus.stamplayapp.com gehostet.

Beginnen wir nun mit der Konfiguration des Backends.

1.1 Backend konfigurieren: Facebook-Registrierung integrieren

Diese App enthält ein Facebook-Login. Wir können mit der Facebook-API interagieren und Anmeldungen und Anmeldungen ohne eine einzige Codezeile ausführen. Da wir möchten, dass sich unsere Benutzer bei Facebook anmelden, müssen wir zur Facebook-Entwicklerseite gehen und eine neue Entwickler-App erstellen.

Wählen Webseite, Sobald Sie Ihre App erstellt haben, können wir zwei Dinge von Facebook für die Integration in Stamplay nutzen:

  • App-ID
  • App-Geheimnis

Diese beiden Dinge finden Sie unter Einstellungen> Grundeinstellungen.

Jetzt, da wir unsere App-ID und das App-Geheimnis haben, können wir diese in Stamplay einbinden.

Gehen Sie zurück zu Stamplay und wählen Sie Benutzer aus dem Hauptmenü und dann Authentifizierung. Hinzufügen Facebook Kopieren Sie als Anmeldedienst die App-ID und das App-Geheimnis, und klicken Sie auf sparen.

Sie können jetzt Benutzer über Facebook registrieren!

Nachdem wir unsere Facebook-Anmeldeinformationen eingerichtet haben, bietet Stamplay eine praktische API-URL für die Anmeldung bei Facebook. Lass uns jetzt dorthin gehen und unseren Facebook-Login in Aktion sehen. 

Gehen Sie zu https://tutsplus.stamplayapp.com/auth/v1/facebook/connect.

Und boom! Sie haben Ihr Facebook-Login und sind in Betrieb.

1.2 Backend konfigurieren: Daten mit Objekten verwalten

Mit Komponenten kann nicht alles bedient werden, daher bietet uns Stamplay eine einfache Möglichkeit, mit benutzerdefinierten Daten umzugehen. Stellen Sie sich dies als Back-End-Datenbankschnittstelle für Ihre Anwendung vor.

Bestellungen werden mit einem Objekt namens verfolgt Aufträge. Es hat die folgenden fünf Eigenschaften:

  • active (boolean) // um zu verfolgen, ob das Abonnement aktiv ist oder nicht
  • address (plain_object) // Adresse des Benutzers
  • plan (string) // der Plan, den der Benutzer abonniert hat
  • stripesubscription (string) // die von Stripe generierte Abonnement-ID
  • user (user_id) // die eindeutige _id unseres Benutzers

Stamplay zeigt sofort RESTful-APIs an, sobald Sie das Objekt erstellen. Der Endpunkt sieht folgendermaßen aus: https://APPID.stamplayapp.com/api/cobject/v1/orders.

1.3 Streifen konfigurieren

Wir werden unsere Kunden regelmäßig in Rechnung stellen müssen, und dank Stripe ist das ganz einfach! Ihre wiederkehrende Zahlungsabwicklung wird im Plan-Konzept implementiert. Streifenpläne sind Objekte, die die Kosten und den Abrechnungszyklus Ihrer Abonnements darstellen.

Um dies einzurichten, müssen Sie Ihren Plan im erstellen Streifenkonsole> Pläne:

Wenn Sie fertig sind, gehen Sie zurück zu Stamplay und verbinden Sie die Stripe-Komponente Aufgabe> Komponenten. Wähle aus Streifen Modul und klicken Sie auf die Verbinden Taste.

Jetzt wird das Stripe-Konto mit der Stamplay-App verknüpft, die in unserem Auftrag API-Anforderungen ausführen kann.

Nach einer erfolgreichen Stripe-Verbindung erhalten Sie eine Ansicht wie diese.

1.4 MailChimp konfigurieren

Um MailChimp zu konfigurieren, ist der Prozess ziemlich ähnlich. Verbinden Sie einfach Ihr MailChimp-Konto wie zuvor mit Stripe, und Sie sehen eine Seite wie diese:

2. Automatisierung mit Aufgaben hinzufügen

Dies ist der serverseitige Teil unserer Anwendung, bei dem der Großteil der Magie geschieht! Nehmen wir an, wir wollen ein paar Dinge tun:

  • Senden Sie eine Begrüßungsnachricht per E-Mail, wenn sich ein Nutzer bei Facebook anmeldet.
  • Fügen Sie Benutzer zu einer MailChimp-Liste hinzu, wenn Sie sich anmelden.

Diese beiden Dinge würden normalerweise ein gutes Stück Code erfordern, aber nicht mit Stamplay…

2.1 Willkommens-E-Mail

Ein Assistent führt Sie durch die Konfiguration der Aufgabe. Unter Aufgaben> Verwalten, Erstellen Sie eine neue Aufgabe und richten Sie sie nach Ihren Wünschen ein. So haben wir die Willkommens-E-Mail-Aufgabe eingerichtet:

Dann können Sie die Aktion konfigurieren, indem Sie die vom Trigger kommenden Variablen (in diesem Fall der Benutzer) nutzen. So haben wir unsere konfiguriert:

2.2 Benutzer in eine MailChimp-Liste verschieben

Das Senden von E-Mails der Benutzer an Ihre Mailingliste in MailChimp ist unkompliziert.

Unter Aufgaben> Verwalten, Erstellen Sie eine neue Aufgabe und richten Sie sie nach Ihren Wünschen ein. So haben wir die MailChimp-Abonnementaufgabe eingerichtet.

3. Das Frontend

Um an unserem Frontend zu arbeiten, müssen wir das Stamplay-CLI-Tool verwenden.

3.1 Installieren Sie die Stamplay-CLI

Mit diesem Tool können wir mit unseren Stamplay-Anwendungen arbeiten. Es erlaubt uns:

  • Anwendungen bereitstellen
  • Starten Sie einen lokalen Server für die Entwicklung
  • ein Stamplay-Projekt initialisieren
  • Versionen zurücksetzen
  • Laden Sie die neueste Version herunter
$ npm install -g stamplay-cli

Erstellen wir einen neuen Ordner und initialisieren Sie unsere Stamplay-Anwendung mit diesem Ordner.

$ mkdir tutsplus && cd tutsplus $ stamplay init

Sie werden aufgefordert, Ihr einzugeben appId (Name Ihrer App) und Ihre API-Schlüssel. In diesem Fall sind sie tutsplus und 4 **** 0 beziehungsweise.

Dadurch wird eine stamplay.json-Datei im Stammverzeichnis Ihrer App erstellt, damit Stamplay bei der Bereitstellung Ihre Anmeldeinformationen kennt.

"appId": "tutsplus", "apiKey": "4e **** 0", "public": "./", "ignore": ["stamplay.json", "** /. *", "** / node_modules / **"]

3.2 Aufbau des Frontends

Um mit einem guten Design zu starten, haben wir mit einer der vielen kostenlosen HTML5-Vorlagen von Templated.co begonnen. Die, die wir verwendet haben, heißt Retrospect.

Laden wir es herunter und entpacken Sie es in unseren Projektordner. Dann lassen Sie uns hier einige zusätzliche Bibliotheken mit Bower installieren. Führen Sie den folgenden Befehl aus und wir sind bereit zu gehen:

$ bower install Winkel-Ui-Router Winkel-Stamplay Stamplay-SDK Winkel-Route --save

Um Stamplay mit Angular verwenden zu können, müssen wir:

  • Laden Sie das Stamplay-SDK
  • Konfigurieren Sie die Stamplay-Anwendung
  • Last Angular
  • Laden Sie den Angular UI Router
  • Laden Sie die Angular-Stamplay-Bibliothek (nur ein Service-Wrapper für das SDK).

Hier sind die Zeilen, die dazu benötigt werden. Wir fügen sie unter dem hinzu Tag unserer index.html-Datei:

 …  … 
… .

Stellen Sie sicher, dass Sie Ihre eigene eingegeben haben AppId in die Stamplay.init-Funktion. Wir können jetzt unseren lokalen Server starten, um sicherzustellen, dass alles korrekt geladen wird. Führen Sie folgendes aus:

stamplay start

Sie werden sehen, dass Ihre Anwendung unter http: // localhost: 8080 einsatzbereit ist.

3.3 Die Winkelanwendung

Wir werden einige Dateien für unsere Angular-Anwendung erstellen:

Die beiden Servicedateien verwenden das Stamplay-SDK und die Winkel-Stamplay-Bibliotheken, um unsere Anwendung bei der Interaktion mit unseren Stamplay-Daten zu unterstützen.

Das wichtigste ist userService.js. Es hat einige Funktionen und hilft uns, Daten zu erfassen oder Daten zu erstellen. Weitere Informationen zu den Möglichkeiten des Stamplay-SDK finden Sie in der Dokumentation.

UserService.js nutzt das Stamplay JS SDK, um unserer Angular-App die folgenden Funktionen bereitzustellen:

  • Anmeldung
  • Ausloggen
  • isLogged
  • saveAddress
  • getUserModel
  • createCard
  • abonnieren
  • Abmelden

/assets/js/services/userService.js

/ * global angle, Stripe, Konsole * / 'use strict'; angle .module ('tutsplus.service') .factory ('userService', ['$ q', '$ stamplay'), Funktion ($ q, $ stamplay) var user = $ stamplay.User (). model; return login: function () return user.login ('facebook');, logout: function () return user.logout ();, isLogged: function () return user.isLogged ();, saveAddress : function (Adresse, Ort, Postleitzahl) // Adressdaten des Benutzers speichern, getUserModel: function () // Benutzerinformationen abrufen, createCard: function (cardObj) // Kreditkartendaten sammeln und über Stripe speichern , subscribe: function (planId) // Subscribe user, Abbestellen: function (planId) // Benutzerabonnement kündigen;)]);

Unsere Anwendung wird drei Seiten haben:

  • home.html, die Haupt-Landing-Page, auf der sich der Benutzer anmelden kann
  • subscriptions.html, wo Benutzer die für ein Abonnement verfügbaren Boxen anzeigen können
  • profile.html, wo Benutzer ihre Informationen bearbeiten und ein Abonnement kündigen können

Diese Seiten werden von drei Controllern verwaltet (wie von Best Practices vorgeschlagen), nämlich homeCtrl.js, subscriptionCtrl.js und profileCtrl.js.

Seitenvorlagen und Controller sind durch die Haupt-App Angular miteinander verbunden.

Hier ist die Grundlage unserer app.js:

/ * global angle * / 'use strict'; angle.module ('tutsplus', ['tutsplus.service', 'ngRoute', 'ui.router', 'ngStamplay']); angle .module ('tutsplus') .config (Funktion ($ stateProvider, $ urlRouterProvider) $ urlRouterProvider.otherwise ('/'); $ stateProvider .state ('home', url: '/', templateUrl: '/ pages / home.html ', Controller:' homeCtrl ', controllerAs:' home ') .state (' subscriptions ', url:' / subscriptions ', templateUrl:' /pages/subscriptions.html '), controller:' subscriptionCtrl ', controllerAs:' sub ') .state (' profile ', url:' / profile ', templateUrl:' /pages/profile.html ', controller:' profileCtrl ', controllerAs:' profile '); ) / * * Speichern Sie den protokollierten Benutzer, falls vorhanden, im rootScope * / .run (['$ rootScope', 'userService', Funktion ($ rootScope, userService) userService.getUserModel () .then (functionResresp)  $ rootScope.user = userResp;);]); 

Jetzt müssen wir nur noch unsere neuen Dateien in index.html unterhalb der zuvor hinzugefügten Bibliotheken laden.

/index.html

… Kopf der Datei index.html…            

3.4 Front-End-Authentifizierung

Wir haben unsere Facebook-Anwendung schon früher verkabelt, und jetzt müssen wir unseren Nutzern eine Möglichkeit bieten, sie zu nutzen! Die gesamte Authentifizierung wird von Stamplay durchgeführt. Wir brauchen nichts zu programmieren; Wir müssen nur unsere Benutzer mit dem Authentifizierungspfad verknüpfen, den Stamplay für uns bereitgestellt hat.

Der Authentifizierungsprozess sieht folgendermaßen aus:

  • Verknüpfen Sie Benutzer mit unserer Authentifizierungs-URL.
  • Die Authentifizierung erfolgt auf Facebook.
  • Facebook sendet einen Benutzer mit einem Token an unsere Anwendung zurück.
  • Stamplay speichert das Token und der Benutzer wird authentifiziert.

Wir müssen nur den ersten dieser Schritte manuell konfigurieren. Wenden wir unsere Angular App mit an ng-app und ng-Controller zu index.html und fügen Sie einige Angular-Direktiven hinzu, um die Startseite mit unserer homeCtrl.js zu verbinden. Wir werden auch alles zwischen dem entfernen