All dies kann in der ausgezeichneten Ruby API Docs gefunden werden. Es gibt ein paar Schritte, aber es ist nicht so schwer. Es kann ein wenig experimentieren, damit es in Ihrer Anwendung funktioniert.
Es sieht so aus, als ob Sie versuchen, den Kunden auf einen Abonnement Plan (Verwendung von plan: 1212
) zu setzen, also werde ich erklären, wie Abonnement funktioniert. Ich erkläre auch einfache einmalige Gebühren, falls Sie das suchen.
Setup-Streifen in Ihrer Anwendung
Add Stripe Schlüssel zu Ihrem config/secrets.yml
Datei:
development:
stripe_private_key: <%= ENV["STRIPE_PRIVATE_KEY"] %>
stripe_public_key: <%= ENV["STRIPE_PUBLIC_KEY"] %>
Sie können die STRIPE_PRIVATE_KEY und STRIPE_PUBLIC_KEY in Ihrer Umgebung halten. Test- und Produktionsumgebungen erfordern ähnliche Konfigurationseinstellungen.
Als nächstes fügen Sie diesen Code in Ihre BillingController
, oder wo auch immer Sie die Stripe-API verwenden möchten:
require "stripe"
Stripe.api_key = Rails.application.secrets.stripe_private_key
hinzufügen Migration Streifen Kunden-ID an den Kunden speichern
class AddUserStripeCustomerId < ActiveRecord::Migration
def change
change_table :users do |t|
t.string :stripe_customer_id, limit: 50, null: true
end
end
end
einen Kunden erstellen
Wenn Sie bereit sind, den Abrechnungsprozess für einen Kunden zu starten, tun Sie Folgendes:
if [email protected]_customer_id
@user.stripe_customer_id = Stripe::Customer.create(
account_balance: 0,
email: @user.email_canonical
)
end
Achten Sie darauf, die Kundennummer in Ihrem Benutzermodell zu speichern. Sie müssen sicherstellen, dass Sie Ihre Kunden-ID für einen Nutzer nicht weiterhin erstellen und überschreiben, da dies mit dem Stripe-Zahlungssystem für diesen Nutzer zusammenhängt.
eine Standardquelle erstellen
Der Kunde eine Standardquelle für Abogebühren zugewiesen haben müssen gemacht werden. Dies kann von einem Token erstellt werden, etwa so:
customer.sources.create({source: token_id})
oder aus Kunden vorhandenen Karten zugewiesen, wenn Sie bereits Karten für den Benutzer zugewiesen haben:
customer.default_source = customer.sources.retrieve(card_id)
Machen Sie eine einmalige Gebühr
Sie können die Kunden eine Zeit aufladen, ohne wiederkehrende, und Sie tun, dass mit diesem:
Stripe::Charge.create(
:amount => 1395, # <== Currency in 'cents'
:currency => "usd",
:source => customer.default_source, # <== from previous section
:description => "Fuzzy eyeglasses"
)
Sie sollten die Gebühren-ID erfassen, aber Sie können diese immer von Stripe abrufen, wenn Sie sie später benötigen.
erstellen Subscription Plan
Sie können den Abo-Plan auf der Stripe-Konsole einfach erstellen, da dies in der Regel eine Aktivität einmalig ist; Die Erstellung einer Benutzeroberfläche zur Verwaltung von Abonnementplänen ist mit ziemlicher Sicherheit übertrieben, es sei denn, Sie verfügen über Administratorbenutzer, die Abonnementpläne verwalten können, aber keinen Zugriff auf die Stripe-Konsole haben sollten.
Um programmatisch einen Abo-Plan zu erstellen, versuchen Sie dies:
Stripe::Plan.create(
:amount => 4200, #<== Amount is in cents, not dollars
:interval => "month",
:name => "Purple Plan",
:currency => "usd",
:id => "purple"
)
Sie können so viele Pläne erstellen, wie Sie möchten, und können den Benutzer zu einem subscribe, dass sie mögen.
ein Abonnement erstellen für den Kunden
An dieser Stelle Sie das Abonnement auf den Kunden erstellen können, und dies wird den Abrechnungsprozess einzuleiten.
Stripe::Subscription.create(
:customer => customer,
:plan => "purple"
)
einen Web-Haken-Empfänger
Aus irgendeinem Grunde einrichten, diese Dokumentation in einem anderen Ort ist (siehe Webhooks), aber es ist ein sehr notwendiger Teil des Prozesses. Dies hält Ihre Anwendung des von Streifen geschickt, um die Arten von Veranstaltungen
def PaymentController
protect_from_forgery :except => :webhook
def webhook
# Capture the event information from the webhook params
event_id = params[:event]
# Verify that the event isn't forged to your Stripe account
event = Stripe::Event.retrieve(event_id)
# Record the event
PaymentEvents.create!(event)
# Handle the event in terms of your application
#...
end
end
empfohlen, bei
Types of Events dokumentiert. Sie können wählen, einige zu erfassen und zu behandeln, während andere passieren. In meinen Anwendungen habe ich jedoch festgestellt, dass es besser ist, alle Ereignisse zu erfassen und zu protokollieren und sie dann nach Bedarf zu verarbeiten. Auf diese Weise haben Sie, wenn Sie die Behandlung eines Ereignisses verpasst haben, das später wichtig behandelt werden soll, die Gelegenheit, sich auf das Ereignis zu beziehen und es post hoc bearbeiten zu können.
Sammeln Sie eine regelmäßige Zahlung
Dies ist der einfache Teil, und kann am besten mit Ihrem Lieblings kalten Getränk getan werden. Alles, was Sie von diesem Punkt aus tun müssen, ist die Überwachung der Stripe-Konsole und Ihres Bankkontos. Keine zusätzliche Aktion erforderlich, da Stripe den Rest erledigt.
Gelöst es! VIELEN DANK! –
Hab es einfach gemacht :) nochmals vielen Dank! :) –
Danke für diesen Mann - woher bekommst du die token_id beim Erstellen einer Standardquelle? – luke