Stripe の Pricing table を使用した Subscriptions プラグインで、引き続き購読者をグループに追加することは可能ですか?
Subscriptions プラグインの代わりに、Stripe の Pricing table を使用して商品を表示するようにしました。購読者が指定したユーザーグループに追加されなくなりました(Pricing table に追加する前の元の Discourse 作成の購読の場合)。Pricing table に切り替える前はそうだったと思いますが、Stripe で作成された新しい商品も Discourse の Subscriptions プラグインに表示されません。
これは期待される動作ですか、それとも何か壊してしまいましたか?
もし期待される動作であれば、Pricing table に切り替えることによる影響を強調するために、プラグインガイドに一文を追加するのを手伝うことはできますか?
Webhook と統合に関するアドバイスを調べますが、購読者をグループに追加することを自動化する方法についてのポインタがあれば、大いに感謝します 
ありがとうございます。
「いいね!」 1
blake
(Blake Erickson)
2
はい、ただし、製品はStripeではなくDiscourseから作成する必要があります。
Discourseで製品を作成する:
Discourseで製品を作成したら、価格とグループを指定するプランを作成します:
次に、StripeでPricing tableを作成する際に、Discourseから作成された製品のみを選択する必要があります:
これにより、ユーザーが購読すると、選択したグループに追加されます:
「いいね!」 2
pfaffman
(Jay Pfaffman)
3
そして、Discourse以外で作成したもので、Discourseに認識させたいものがある場合(セルフホストの場合)は、rake subscriptions:subscriptions_import を試すことができます。
「いいね!」 2
詳細なご回答ありがとうございます、@blake! Discourseで製品とプランを設定し、テスト後にこれを解決済みとしてマークします。
クーポンとプロモーションコードは、StripeとDiscourseの間で問題なく移行するようです。最後のテストは、製品に説明とマーケティング機能を追加した後(価格表に表示するため)に、統合が引き続き機能するかどうかです。
「いいね!」 2
追加のヒントをありがとうございます、@pfaffman 
「いいね!」 1
週末にDiscourseで作成した商品+プランが購入されましたが、指定したグループに追加されませんでした。そのため、Discourseで作成した後にStripeで商品+プランを編集すると、この連携が壊れてしまうようです。
私も自分でサブスクリプションを購入してテストしましたが、指定したグループに追加されませんでした。
どこで問題が発生しているかを特定するために、さらにテストする方法についてアドバイスいただける方がいれば、喜んで実施します。
また、DiscourseとStripeの支払いを連携させる他の方法も調査する予定です。
「いいね!」 1
blake
(Blake Erickson)
7
申し訳ありませんが、これはまだ機能していません 
これに言及してくれてよかった。単発の支払いには別の問題があるかもしれない。ローカルでテストしたところ、Webhook呼び出しでエラーが発生しており、ユーザーがグループに追加されないか、ユーザーの請求ページにトランザクションが表示されない可能性があります。
将来のトランザクションが機能するように、コードの修正を検討します。
「いいね!」 2
blake
(Blake Erickson)
8
この問題に対するコード修正を作成しました。サブスクリプションプラグインを最新バージョンに更新すれば、価格表を使用したすべての新しい都度払いで機能するはずです。
「いいね!」 2
素晴らしい!迅速な修正ありがとうございます 
自分で、そしてお客様と一緒にテストし、期待どおりに動作することを確認したら、これを解決策としてマークします。
「いいね!」 1
申し訳ありませんが、コードの修正では問題が解決していません。アップデート後、2人の別々の顧客から4件の購入がありましたが、いずれもグループに追加されていません。また、請求ページに支払いまたはサブスクリプションが表示されません。
コードの修正により1つのことが変更されたと考えています。サブスクリプションプラグインをアップデートしてからDiscourseで作成した製品には、Stripeでメタデータ repurchaseable: false がタグ付けされています。しかし、コード修正前に作成された製品には、そのメタデータが追加されていません(購入済みです)。
問題の診断に協力できることがあれば、お知らせください。
blake
(Blake Erickson)
12
まず、多くのサインアップおめでとうございます。素晴らしいですね!サブスクリプションプラグインがまだうまくいかないとのこと、申し訳ありません。ローカル環境では、ユーザーはサインアップ時にグループに追加されるので、それが機能することはわかっています。さらに調査を行い、その後、問題の根本を突き止めるために、あなたのセットアップの詳細についてプライベートメッセージでお尋ねします。
「いいね!」 2
blake
(Blake Erickson)
13
本番環境でプラグインをテストするためにセットアップした環境で、お客様の問題を再現することができました。まず修正すべきことは、既存のWebhookにcheckout.session.completedをイベントとして追加することです。
これが欠落している場合、StripeはPricing Tableのチェックアウト情報をDiscourseに送信しません。
これで完了するはずですが、もう1つコード修正が必要な場合があり、現在調査中です。
「いいね!」 2
marpoe
(Marc)
14
Blake様
私も同じ問題が発生しました。Stripeで正常に購入が確認された後、ユーザーの更新が機能しません。
お手数ですが、解決にご協力いただけますと幸いです。
よろしくお願いいたします。
「いいね!」 1
さらに詳しく調べていただきありがとうございます、ブレイク。StripeのWebhookを更新してcheckout.session.completedを追加しました。
成功/失敗のニュースがあり次第、また戻ってきます!
自分用メモ - Webhookは https://dashboard.stripe.com/webhooks/ で見つかります。 最初にSubscriptionsプラグインをインストールしたのは数年前だったので、セットアップには少し慣れていませんでした…
Stripeによると、過去15日間でWebhookの試行はありませんでした。そのため、どこかで通信がブロックされていることは明らかです。
blake
(Blake Erickson)
17
Webhook ページに https://your-discourse-site/s/hooks のような URL はありますか?
また、Webhook の署名シークレットが Discourse のものと一致していることを確認する必要があります。
これが私宛の質問か @marpoe 宛の質問か分かりませんが、はい、Stripe に正しい Discourse URL があり、Discourse に正しい Stripe シークレットがあります。Stripe が Discourse で設定したことに応答して製品とプランを作成するため、Webhook は ほぼ 機能していることを知っています 
checkout.session.completed イベントをWebhookに追加したことでうまくいきました! 
テスト購入を行ったところ、ユーザーは正常にグループに追加されました。
この一括払いバグの修正に費やしていただいた時間と思考に感謝します。
「いいね!」 3
marpoe
(Marc)
20
これも私にもうまくいきました!どうもありがとうございます!
「いいね!」 1
system
(system)
クローズされました:
21
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.