顧客がクレジットカード情報を変更できるようにする方法

顧客にクレジットカード情報を変更してもらう方法について、以前から悩んでいました。前回この問題が発生したときは、サブスクリプションをキャンセルし、新規作成をお願いすることになりました。ついに、請求書履歴の確認、支払い方法の追加、請求情報(メールアドレス)の更新ができるStripeページへのリンクを生成する方法を見つけました。

このリンクをサブスクリプションプラグインに追加するためにPRを提出したいのですが、今すぐには数時間かかる作業ができないため、ここでは手動でRailsで実行する方法を示します。

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

ドキュメントはこちらです。

また、Stripe Login | Sign in to the Stripe Dashboard では、顧客がアクセスしてメールアドレスを貼り付けることができるリンクを生成できます。

「いいね!」 9

Discourse Subscriptions にこの機能が欠けていることに気づきませんでしたが、これは必須の機能です。

「いいね!」 2

ええ、私も知りませんでした。これは緊急事態のように感じます。

「いいね!」 1

素晴らしい!このコードはどこに追加すればよいですか?

「いいね!」 1

提供したコードについて、詳しく説明し、使い方を教えていただけますか?

また、ユーザーがこのStripeポータルにアクセスできるようにする必要があります。API経由でサブスクリプションが作成されると請求書が送信されないため、法的に請求書を提供しなければなりません。

見つけた回避策は、Custom Hamburger Menu Links Theme Component を使用して、Stripeポータルへのリンクを追加することです。これは機能しますが、メールリンク経由で接続しなければならないユーザーにとっては、あまり良い方法ではありません。

「いいね!」 1

リンクを生成し、それをシリアライザーに追加してから、そのリンクをUXのどこかに配置するプラグインに入れる必要があります。まだ時間をかけていません。これはRailsコンソールからは機能しますが、あまり役に立ちません。

コードはまだ機能しているようです。

簡単な方法は、プラグインをフォークしてコードを追加することです。より難しく、しかしはるかに良い方法は、PRとして受け入れられるようにコードとテストを追加することです。予算がある場合は、#marketplaceに投稿するか、直接連絡してください。中間的な解決策は、たとえばリンクをシリアライザーに追加するプラグインを作成することです。これにより、現在行っているように、ハンバーガーメニューのようなUXのどこかに配置できます。

「いいね!」 2

ご返信とご説明ありがとうございます。残念ながら、プラグイン開発の経験はなく、必要に応じて簡単なHTML/CSSの変更や、場合によってはRailsコンソールでの数コマンドしか実行できません。

今回は、とりあえず回避策で対応することにします。また、ユーザーがサブスクライブする際に、可能な限りStripeポータルのリンクを追加します(管理者 > カスタマイズ > テキスト)。

「いいね!」 2

そのリンクは期間限定なので、リダイレクトを行うルートを追加するのが良い方法だと思います。これにより、新しいリンクを取得するタイミングを知るという手数料の複雑さがなくなり、クリックされないリンクを多数取得するために呼び出しを行うというケトの必要性がなくなります。

それでもプラグインですが、はるかに簡単なPRになると思います。

「いいね!」 1

ああ、おそらく私たちが話しているリンクは違うようです。あなたは、あなたが提供したコードから生成されたリンクについて話しているのでしょう。私は、Stripeダッシュボードで有効化できるノーコード顧客ポータルリンクについて話しています。こちらは、ポータルが有効化されている限り有効だと思います。

はい。私の記憶が正しければ、私のコードは、彼らが自分自身で電子メールアドレスを入力して電子メールでリンクを取得することを(そして、どの電子メールアドレスを使用したかを知ることを)防ぎます。それで十分であれば、すべて問題ありません。

注目すべきは、これが現在プラグインで直接サポートされているようです。

「いいね!」 3

まさに!そしてこれは大きな助けになります(そして、私がマジックリンクについて何もしてこなかった大きな理由でもあります)。しかし、支払い履歴や請求書へのリンクにアクセスするという問題は解決しません。

「いいね!」 3