구독자를 그룹에 추가하는 기능이 Stripe 가격표와 호환되나요?

Subscriptions 플러그인과 Stripe의 가격표를 함께 사용할 때, 구독자를 그룹에 추가하는 것이 여전히 가능한가요?

원래 Subscriptions 플러그인으로 생성했던 구독을 Stripe의 가격표에 추가하면서, 제품을 나열하는 방식을 Stripe 가격표 사용으로 전환했습니다. 전환 후, 지정해 둔 사용자 그룹에 구독자가 더 이상 추가되지 않고 있습니다. 또한 Stripe에서 새로 만든 제품도 이전처럼 Discourse Subscriptions 플러그인에 표시되지 않습니다.

이것이 정상적인 동작인가요, 아니면 전환 과정에서 무언가 문제가 생긴 건가요?

만약 정상적인 동작이라면, 가격표로 전환했을 때 발생할 수 있는 결과를 강조하기 위해 플러그인 가이드에 한 줄을 추가하는 데 도움을 드릴 수 있을까요?

웹훅 및 통합 관련 조언을 살펴볼 예정이지만, 구독자를 그룹에 자동으로 추가하는 방법에 대한 힌트를 주시면 매우 감사하겠습니다. :pray:

감사합니다.

네, 가능합니다. 다만 Discourse에서 Stripe에서 생성한 것이 아니라 Discourse에서 생성한 제품을 사용해야 합니다.

먼저 Discourse에서 제품을 생성합니다:

Discourse에서 제품을 생성한 후에는 가격을 지정하고 그룹을 지정하는 플랜을 생성합니다:

이후 Stripe에서 가격 테이블을 생성할 때는 Discourse에서 생성한 제품만 선택해야 합니다:

그런 다음 사용자가 구독하면 선택한 그룹에 추가됩니다:

Discourse로 생성하지 않았지만 Discourse가 인식해야 할 항목이 있고(자체 호스팅 환경인 경우), rake subscriptions:subscriptions_import를 시도해 볼 수 있습니다.

이렇게 자세한 답변을 주셔서 감사합니다, @blake ! Discourse에서 상품과 플랜을 설정하고, 테스트가 완료되면 이 답변을 해결책으로 표시하겠습니다.

쿠폰과 프로모션 코드는 Stripe와 Discourse 간에 잘 이전되는 것 같습니다. 최종 테스트는 Stripe에서 상품에 설명과 마케팅 기능을 추가한 후(가격표를 채우기 위해) 통합이 여전히 정상적으로 동작하는지 확인하는 것입니다.

추가 힌트 감사합니다, @pfaffman :smiley:

주말에 누군가가 제가 Discourse에서 만든 제품+플랜을 구매했지만, 제가 지정한 그룹에 추가되지 않았습니다. Discourse에서 제품+플랜을 생성한 후 Stripe에서 해당 내용을 수정하면 이 통합 기능이 어떤 식으로든 깨지는 것 같습니다.

저도 직접 구독을 구매해 테스트해 보았는데, 역시 지정된 그룹에 추가되지 않았습니다.

어디서 문제가 발생하는지 파악하기 위해 추가적으로 테스트하는 방법에 대해 조언해 주실 분이 있다면, 기꺼이 진행하겠습니다.

또한 Stripe 결제와 Discourse를 통합하는 다른 방법들도 조사해 보겠습니다.

아직도 작동하지 않는 것 같습니다 :thinking:

이 부분을 언급해 주셔서 다행입니다. 일회성 결제에 별도의 문제가 있는 것 같습니다. 로컬에서 테스트해 봤더니 웹훅 호출에서 오류가 발생하여 사용자를 그룹에 추가하지 못하거나 사용자의 결제 페이지에 거래 내역이 표시되지 않는 원인이 될 가능성이 있습니다.

향후 거래가 정상적으로 작동하도록 코드 수정안을 찾아보겠습니다.

좋아요, 이 문제를 위한 코드 수정을 만들었습니다. 구독 플러그인을 최신 버전으로 업데이트하면 가격표의 모든 신규 일회성 결제에 대해 정상적으로 작동할 것입니다.

정말 훌륭합니다! 빠른 수정 감사합니다 :smiley:

저와 고객들을 대상으로 직접 테스트해 보고, 의도대로 작동한다고 확신이 들면 이 답변을 해결책으로 표시하겠습니다.

죄송하지만, 코드 수정이 문제를 해결하지 못했다는 점을 보고드립니다. 업데이트 이후 두 명의 서로 다른 고객으로부터 총 4건의 구매가 있었으나, 그중 어느 것도 그룹에 추가되지 않았습니다. 또한 해당 고객의 청구 페이지에서 결제 내역이나 구독 정보를 확인할 수 없습니다.

코드 수정으로 인해 한 가지 사항이 변경된 것으로 보입니다. Subscriptions 플러그인을 업데이트한 이후 Discourse에서 생성한 상품들은 이제 Stripe에서 repurchaseable: false 메타데이터로 태그가 지정되고 있습니다. 그러나 코드 수정 전에 생성된 상품에는 해당 메타데이터가 추가되지 않았습니다(해당 상품은 이미 구매된 상태입니다).

문제를 진단하는 데 도움이 될 수 있는 방법이 있다면 알려주시기 바랍니다!

우선, 이렇게 많은 가입자가 늘어나고 있다는 소식을 전해 주셔서 정말 기쁩니다! 정말 대단해요! 다만 구독 플러그인이 아직 완벽하게 작동하지는 않는 것 같네요. 제 로컬 환경에서는 사용자가 가입하면 자동으로 그룹에 추가되므로, 이 기능이 정상적으로 작동할 수 있다는 것을 알고 있습니다. 조금 더 알아본 후, 문제의 원인을 파악할 수 있도록 설정에 관한 몇 가지 세부 사항을 묻기 위해 개인 메시지를 보내겠습니다.

좋아요, 플러그인을 테스트하기 위해 설정한 프로덕션 환경에서 해당 문제를 재현할 수 있었습니다. 먼저 기존 웹훅에 checkout.session.completed 이벤트를 추가하는 것이 첫 번째 수정 사항입니다.

이 이벤트가 누락되어 있으면 Stripe가 가격 테이블 체크아웃 정보를 Discourse로 전송하지 않습니다.

이것만 처리하면 해결될 가능성이 높지만, 현재 제가 추가로 확인 중인 코드 수정 사항이 하나 더 있을 수 있습니다.

Blake님,

저도 동일한 문제를 겪고 있습니다. Stripe에서 구매가 정상적으로 완료된 것으로 표시되는데, 사용자 업데이트가 작동하지 않습니다:

도움 주실 수 있기를 바랍니다!

미리 감사드립니다!

Blake, 이 문제를 더 깊이 파고들어 주셔서 감사합니다. Stripe 웹훅을 업데이트하여 checkout.session.completed를 추가했습니다.

성공/실패 소식이 있으면 다시 돌아올게요!

나를 위한 메모 - 웹훅은 https://dashboard.stripe.com/webhooks/ *에서 찾을 수 있습니다. 몇 년 전에 Subscriptions 플러그인을 처음 설치했었기 때문에 설정 부분이 조금 어색했습니다…

Stripe에서는 최근 15일 동안 웹훅 시도 기록이 없다고 하므로, 어딘가에 통신이 차단되어 있는 것이 분명합니다.

웹훅 페이지에 https://your-discourse-site/s/hooks와 같은 URL이 있나요?

또한 웹훅의 서명 시크릿(Signing secret)이 Discourse에 설정된 값과 일치하는지 확인해야 합니다:

이 질문이 내 영역인지 @marpoe 님의 영역인지 확신이 없는데, 네 - Stripe에 올바른 Discourse URL이 있고, Discourse에는 올바른 Stripe 시크릿이 설정되어 있습니다. Discourse에서 설정을 하면 Stripe가 제품과 플랜을 생성하기 때문에, 웹훅이 대부분 정상 작동하고 있다는 것을 알고 있습니다. :smiley:

웹훅에 checkout.session.completed 이벤트를 추가하니 작동했어요! :partying_face:

테스트 구매를 해봤는데, 내 사용자가 그룹에 성공적으로 추가되었습니다.

원회비 결제 관련 이 버그를 고치느라 시간과 공을 들여주셔서 감사합니다.

저에게도 이 방법으로 해결되었습니다! 정말 감사합니다!