Wie kann der Kunde die Informationen seiner Kreditkarte ändern?

Eine Sache, mit der ich zu kämpfen hatte, war, wie ich es dem Kunden ermöglichen kann, seine Kreditkarteninformationen zu ändern. Das letzte Mal, als dies vorkam, habe ich ihr Abonnement gekündigt und sie gebeten, ein neues abzuschließen. Endlich habe ich herausgefunden, wie man einen Link zu einer Stripe-Seite generiert, auf der sie ihre Rechnungshistorie einsehen, eine Zahlungsmethode hinzufügen und ihre Rechnungsdaten (E-Mail-Adresse) aktualisieren können.

Ich möchte einen PR für das Abonnement-Plugin einreichen, um diesen Link hinzuzufügen, aber ich habe im Moment nicht die paar Stunden Zeit, die ich dafür bräuchte. Hier ist, wie man es manuell in Rails macht:

user = User.find_by_username('=USERNAME=');
sub=DiscourseSubscriptions::Customer.where(user_id: user.id).first;

Stripe.api_key = SiteSetting.discourse_subscriptions_secret_key
session=Stripe::BillingPortal::Session.create({
  customer: sub.customer_id,
  return_url: '=SITE_URL=/my/billing/subscriptions',
});
puts session.url

Hier ist die Dokumentation:

und Stripe Login | Sign in to the Stripe Dashboard ermöglicht es Ihnen, einen Link zu generieren, den sie besuchen und eine E-Mail-Adresse eingeben können.

9 „Gefällt mir“

Mir war nicht bewusst, dass diese Funktionalität bei Discourse-Abonnements fehlt, aber dies ist eine unverzichtbare Funktion.

2 „Gefällt mir“

Ja, das habe ich auch nicht gewusst. Das fühlt sich dringend an.

1 „Gefällt mir“

Großartig! Wo sollte dieser Code hinzugefügt werden?

1 „Gefällt mir“

Hallo, können Sie den von Ihnen bereitgestellten Code und dessen Verwendung erläutern?

Ich muss auch meinen Benutzern den Zugriff auf dieses Stripe-Portal ermöglichen, da ich ihnen gesetzlich eine Rechnung zur Verfügung stellen muss, die nicht gesendet wird, wenn ein Abonnement über die API erstellt wird:

Die von mir gefundene Problemumgehung bestand darin, die Custom Hamburger Menu Links Theme Component zu verwenden und einen Link zum Stripe-Portal hinzuzufügen. Es funktioniert, ist aber für die Benutzer, die über einen E-Mail-Link darauf zugreifen müssen, nicht ideal.

1 „Gefällt mir“

Sie müssten ihn in ein Plugin einfügen, das den Link generiert und ihn zum Serializer hinzufügt, und dann diesen Link irgendwo in der UX platzieren. Es ist nichts, wofür ich bisher Zeit gefunden habe. Das würde von der Rails-Konsole aus funktionieren, aber das nützt Ihnen nicht viel.

Es scheint, dass der Code immer noch funktioniert.

Das Einfache wäre, das Plugin zu forken und den Code hinzuzufügen. Das Schwierigere, aber viel Bessere wäre, den Code und die Tests so hinzuzufügen, dass er als PR akzeptiert wird. Wenn Sie ein Budget haben, können Sie unter Marketplace posten oder mich direkt kontaktieren. Ein Mittelweg wäre, ein Plugin zu erstellen, das beispielsweise den Link zum Serializer hinzufügt, damit Sie ihn dann irgendwo in der UX platzieren könnten, wie im Hamburger-Menü, wie Sie es jetzt tun.

2 „Gefällt mir“

Vielen Dank für Ihre Antwort und Erklärung. Leider habe ich keine Erfahrung mit der Plugin-Entwicklung und kann nur einige leichte HTML/CSS-Änderungen vornehmen, vielleicht ein paar Befehle in der Rails-Konsole, falls erforderlich.

Ich werde mich vorerst an meine Workaround-Lösung halten. Ich werde auch den Link zum Stripe-Portal hinzufügen, wo immer dies möglich ist, wenn sich der Benutzer anmeldet (Admin > Anpassen > Text).

2 „Gefällt mir“

Dieser Link ist zeitlich begrenzt, daher denke ich, dass der Weg dorthin darin besteht, eine Route hinzuzufügen, die eine Weiterleitung durchführt. Das würde die Komplikation der Provisionszahlung ersparen, zu wissen, wann ein neuer Link benötigt wird, und Keto davon abhalten, eine Reihe unnötiger Aufrufe zu tätigen, um einen Link zu erhalten, der niemals angeklickt wird.

Es ist immer noch ein Plugin, aber ich denke, es wäre ein viel einfacheres PR.

1 „Gefällt mir“

Ah, ich glaube, wir sprechen nicht über denselben Link… Sie sprechen wahrscheinlich über den Link, der aus dem von Ihnen bereitgestellten Code generiert wurde. Ich spreche über den no-code Kundenportal-Link, den ich im Stripe-Dashboard aktivieren kann. Ich glaube, dieser ist gültig, solange das Portal aktiviert ist.

Ja. Wenn ich mich richtig erinnere, hindert mein Code sie daran, ihre E-Mail-Adresse einzugeben und den Link selbst per E-Mail zu erhalten (und zu wissen, welche E-Mail-Adresse sie verwendet haben). Wenn das gut genug ist, sind Sie fertig.

Bemerkenswert ist, dass dies jetzt direkt im Plugin unterstützt zu werden scheint:

3 „Gefällt mir“

In der Tat! Und das ist eine große Hilfe (und ist ein großer Teil dessen, warum ich nichts wegen des magischen Links getan habe). Es löst jedoch nicht das Problem des Zugangs zu Ihrer Zahlungshistorie und Links zu Rechnungen.

3 „Gefällt mir“