Heim >PHP-Framework >Laravel >Laravel-Entwicklung: Wie kann man mit Laravel Cashier Abonnementzahlungen implementieren?

Laravel-Entwicklung: Wie kann man mit Laravel Cashier Abonnementzahlungen implementieren?

WBOY
WBOYOriginal
2023-06-13 14:39:371419Durchsuche

Laravel ist ein beliebtes PHP-Framework, das den Entwicklungsprozess von Webanwendungen erheblich vereinfacht. Laravel Cashier ist eine Zahlungsverarbeitungsbibliothek, die Funktionen zur Verarbeitung von Abonnementzahlungen bereitstellt. Es kann in Stripe integriert werden, um Benutzern die Ausführung von Anwendungen mit Abonnementfunktionen zu ermöglichen. In diesem Artikel wird erläutert, wie Sie mit Laravel Cashier Abonnementzahlungen implementieren.

  1. Erstellen Sie ein Stripe-Konto

Bevor Sie Laravel Cashier verwenden, müssen Sie zunächst ein Stripe-Konto erstellen. Stripe ist eine Cloud-Plattform zur Verarbeitung von Online-Zahlungen und ihre API kann problemlos in Laravel Cashier integriert werden. Besuchen Sie die Stripe-Website, erstellen Sie ein Konto und melden Sie sich bei der Konsole an. In der Konsole finden Sie den API-Schlüssel, der die wichtigsten Informationen darstellt, die für die Integration von Stripe in Laravel Cashier erforderlich sind.

  1. Installieren Sie Laravel Cashier

Verwenden Sie Composer, um Laravel Cashier in Ihrem Laravel-Projekt zu installieren. Gehen Sie im Terminal in das Stammverzeichnis Ihres Laravel-Projekts und führen Sie den folgenden Befehl aus:

composer require laravel/cashier

Nach der Ausführung des obigen Befehls installiert Composer automatisch die erforderlichen Abhängigkeiten und fügt Laravel Cashier zum Projekt hinzu.

  1. Laravel Cashier konfigurieren

Nach der Installation von Laravel Cashier müssen Sie es konfigurieren, um die Stripe-API korrekt zu verwenden. Öffnen Sie zunächst die Datei config/services.php in Ihrem Projekt und fügen Sie der Datei den folgenden Code hinzu:

'stripe' => [
    'model' => AppModelsUser::class,
    'key' => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
],

Der obige Code stellt Laravel Cashier die erforderlichen Konfigurationsinformationen bereit, einschließlich des API-Schlüssels und des Benutzermodells, die für die Verwendung von Stripe erforderlich sind.

Dann konfigurieren Sie den Stripe-API-Schlüssel und die Stripe Connect-Client-ID in der .env-Datei:

STRIPE_KEY=your-stripe-key
STRIPE_SECRET=your-stripe-secret
STRIPE_CLIENT_ID=your-stripe-client-id
  1. Erstellen Sie einen Abonnementplan

Nach der Integration der Stripe-API müssen Sie einen Abonnementplan zur Verwendung in Ihrer Anwendung erstellen. Navigieren Sie in der Stripe-Konsole zur Registerkarte „Produkte“ und klicken Sie auf „Neues Produkt“, um ein Produkt zu erstellen. Öffnen Sie nach dem Erstellen des Produkts die Registerkarte „Abrechnung“ und klicken Sie auf „Neuer Plan“, um einen Plan zu erstellen. Geben Sie den Plannamen, den Preis und den Zeitraum nach Bedarf ein und klicken Sie dann auf „Plan erstellen“.

  1. Benutzermodell aktualisieren

Laravel Cashier verwendet Benutzermodelle, um Abonnements zu verwalten. Bevor Sie fortfahren, müssen Sie einige Methoden in Ihr Benutzermodell aufnehmen. Öffnen Sie das Benutzermodell und fügen Sie den folgenden Code am Ende der Datei hinzu:

use LaravelCashierBillable;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword, Billable; 
}

Der obige Code verwendet die Billable-Eigenschaft von Laravel Cashier im Benutzermodell. Dies ermöglicht die Verwendung von Laravel Cashier-bezogenen Methoden im Benutzermodell.

  1. Implementierung der Abonnementfunktion

Es ist sehr einfach, die Abonnementfunktion mit Laravel Cashier zu implementieren. Fügen Sie in der Ansicht einfach das folgende Formular hinzu:

<form method="POST" action="{{ route('subscribe') }}">
    {{ csrf_field() }}
    <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="{{ config('services.stripe.key') }}"
        data-amount="999"
        data-name="My Awesome Website"
        data-description="Monthly Subscription"
        data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
        data-locale="auto">
    </script>
</form>

Der obige Code fügt Ihrer Website eine Stripe-Abonnieren-Schaltfläche hinzu. Wenn der Benutzer auf die Schaltfläche klickt, springt er zur Stripe-Seite, um den Abonnementvorgang abzuschließen.

Fügen Sie in Ihrem Controller einfach den folgenden Code hinzu, um die Abonnementinformationen mit dem Benutzermodell zu verknüpfen:

public function subscribe(Request $request)
{
    $user = $request->user();
    $user->newSubscription('main', 'plan_id')->create($request->stripeToken);
    return redirect()->back();
}

Der obige Code erstellt ein neues Abonnement, verknüpft es mit dem Benutzermodell und speichert die Abonnementzahlungsinformationen in Stripe. Leiten Sie den Benutzer dann zurück zur Seite und führen Sie die Anwendung weiter aus.

  1. Abmelden

Das Abmelden ist in Laravel Cashier ganz einfach. Fügen Sie einfach den folgenden Code in Ihren Controller ein, um ein bestimmtes Abonnement zu kündigen:

public function cancel(Request $request)
{
    $user = $request->user();
    $user->subscription('main')->cancel();
    return redirect()->back();
}

Der obige Code kündigt ein bestimmtes Abonnement und leitet den Benutzer zurück zur Seite.

Fazit

Laravel Cashier ist eine leistungsstarke Zahlungsverarbeitungsbibliothek, die den Prozess der Abonnementzahlungen erheblich vereinfachen kann. Durch die Verwendung der Stripe-API ist Laravel Cashier in der Lage, den Abonnementprozess einfach in Laravel-Anwendungen zu integrieren. Mithilfe der Anleitung in diesem Artikel können Sie Laravel Cashier problemlos zur Implementierung von Abonnementzahlungsfunktionen verwenden.

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie kann man mit Laravel Cashier Abonnementzahlungen implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn