기능 요청: 한 기간만 지속되는 구독을 제공할 수 있도록 해 주셨으면 합니다. 해당 기간이 끝나면:
사용자는 구독의 Discourse 그룹에서 제거되어야 합니다(현재 일회성 결제에서는 이것이 일어나지 않는다고 생각합니다).
추가 결제가 이루어져서는 안 됩니다.
가능한 해결책? Discourse Subscriptions 플러그인이 구독 스케줄의 iteration 속성을 설정할 수 있도록 해야 합니다. Stripe 문서의 Subscription Schedules API 페이지에서 이를 발견했습니다:
단계 길이 설정
가격의 interval 은 구독에 대한 청구 빈도를 결정합니다. 예를 들어, 월간 interval은 매월 청구됩니다. 단계(Phase)에는 단계가 얼마나 오래 지속되어야 하는지 지정하는 데 사용하는 iterations 속성이 있습니다. 이 값을 interval로 곱하여 단계의 길이를 결정합니다. 월간 interval을 가진 가격을 사용하는 구독 스케줄에서 iterations=2로 설정하면, 해당 단계는 두 달 동안 지속됩니다.
…
스케줄 완료
구독 스케줄은 마지막 단계가 완료된 후 종료됩니다. 이 시점에서 구독은 유지되지만 더 이상 스케줄과 연관되지 않습니다. 스케줄의 마지막 단계가 완료된 후 구독을 취소하려면 end_behavior 를 cancel로 설정할 수 있습니다.
3개의 좋아요
아니요, 불행히도 이 플러그인에는 특이한 동작과 누락된 기능이 너무 많았습니다. 제 질문 이후로 변경되었는지 여부는 알 수 없습니다.
1개의 좋아요
방금 내 기능 요청의 핵심 내용이 여기에도 언급되어 있다는 것을 알게 되었습니다:
You’re right! I had a brain fart. What I actually meant to ask is whether it’s possible or not to have a one-off payment that terminates, and doesn’t go on indefinitely. For example, something like a “day-pass,” where you pay $5 and are put into a special group, and then after, say, a day, the subscription terminates and you’re then eliminated from the group until you pay again. Is this possible?
1개의 좋아요
Alex_王
(Alex 王)
8월 6, 2023, 8:33오후
5
구독 플러그인의 이 기능을 작업하고 있어요. 잘 되길 바라요.
2개의 좋아요
nathank
(Nathan Kershaw)
8월 7, 2023, 10:18오전
6
행운을 빕니다! 여러 사용 사례, 특히 일회성 이벤트에서 이 기능이 정말 유용할 것 같습니다.
이제 '3의 법칙’에 도달했다고 확신합니다.
1개의 좋아요
곧 이 문제를 해결하는 구독 플러그인 업데이트가 배포될 예정입니다.
세금 관련 문제도 함께 해결됩니다: Automatic_tax.enabled for Discourse Subscription plugin
그리고 다른 결제 수단도 활성화됩니다. How can I customise the discourse-subscription plugin?
이 플러그인과 관련하여 다른 불편한 점이 있으시면 말씀해 주세요. 대부분의 문제는 파악하고 있지만, 더 알아보고 싶은 부분도 여전히 있습니다. 예를 들어 캠페인 기능에 대한 여러분의 인식을 더 듣고 싶습니다. 이 기능을 사용해 본 분이 계신가요?
4개의 좋아요
nathank
(Nathan Kershaw)
8월 7, 2023, 11:26오전
8
betterstreets.nz 캠페인을 사용하고 있습니다. 나쁘지는 않지만, 유연성이 다소 떨어집니다. 9개월 전에 설정했는데, 여전히 진행 중입니다(다만 속도가 매우 느리지만요!).
가장 큰 문제는 현재 사용자가 단순히 X 금액을 기부할 수 없고, 반드시 연간 구독을 해야 한다는 점입니다.
또한 금액이 월 단위 기준으로 표시되는 방식도 문제입니다. 이렇게 하면 금액이 어색해 보일 뿐 아니라, 대부분의 사람들이 캠페인을 생각할 때 떠올리는 방식(0에서 X까지의 절대 금액)과 맞지 않습니다. 연간 단위로 표시하더라도 훨씬 나을 것입니다.
배너는 괜찮습니다(발견 페이지는 상단, 주제 페이지는 하단에 표시되지만), 커스터마이징 옵션이 매우 제한적입니다. 사이트의 나머지 부분(예: 다른 배너/푸터)과 조화를 이루도록 크기를 키우거나 줄일 수 있으면 좋겠습니다.
사용자가 특정 기기에서 배너를 닫은 후에도, 가끔 다시 표시되도록 강제하거나, 사용자가 기부할 때까지 존재하되 훨씬 더 작고 눈에 띄지 않는 형태로 축소할 수 있으면 좋겠습니다.
2개의 좋아요
이 피드백에 대해 정말 감사합니다!
매우 유용합니다.
알겠습니다. 이를 확인하기 위해 포럼에 가입해 보았고, 말씀하신 내용을 이해합니다.
아예 닫을 수 없도록 하는 것이 좋을 수도 있습니다. 배너는 그렇게 침습적이지 않아 보이며, 이미 기부한 사람들에게도 유용한 정보를 제공합니다. 이는 커뮤니티에 공통의 목표를 부여하고, 기여한 기부자들에게는 인정받을 자격이 있습니다.
Discourse에서 배너를 만드는 방법은 여러 가지가 있습니다. 현재 어떤 방법을 사용 중이신가요?
알게 된 점: 포럼에 가입하기 전까지는 여러분의 프로젝트에 기부할 수 있다는 사실을 알지 못했습니다. 우리는 가장 큰 청중 부분이 수동적인 독자이며, 소수의 사용자만이 가입을 결정한다는 것을 알고 있습니다.
따라서 로그인하지 않은 사용자들에게도 캠페인 배너를 표시하는 것이 좋은 아이디어인 것 같습니다. 현재 활동적이거나 가입된 회원은 아니지만 기부를 원할 가능성이 있는 많은 사람들이 있을 것입니다.
지금까지 정말 훌륭한 피드백입니다!
2개의 좋아요
nathank
(Nathan Kershaw)
8월 7, 2023, 12:37오후
10
betterstreets.nz에서는 Subscriptions 플러그인의 캠페인 부분에 포함된 배너만 사용하고 있습니다. 이 배너가 존재하기 때문에 다른 배너를 추가하는 것을 저지하고 있습니다!
다만, 다른 사이트에서는 다른 배너를 사용하기도 합니다.
전적으로 동의합니다 - 하지만 그들이 쉽게 그리고 명확하게 그렇게 할 수 있다면 말입니다!
1개의 좋아요
Stripe 용어를 잘 기억하지 못하지만, 이 플러그인은 새로운 방식(다양한 결제 옵션을 허용)이 아니라, 과거의 방식(신용카드 결제만 허용)을 중심으로 작동합니다.
취소 과정은 혼란스럽게 설명되어 있습니다(기억이 정확하지는 않지만, 자동 갱신 취소임에도 불구하고 즉시 취소인 것처럼 설명되는 것 같습니다).
얼마 전 이 플러그인에 대해 꽤 많은 주제를 올렸었습니다. 대부분 답변이 없어서, 이제 플러그인 개발에 착수했다는 소식을 듣게 되어 기쁩니다. 수정: 링크를 첨부합니다 – Search results for 'tags:subscriptions @Jonathan5' - Discourse Meta
2개의 좋아요
게시판 가입과 동시에 구독도 할 수 있다면 정말 좋겠습니다. 현재 두 단계로 이루어진 과정은 모든 상황에 이상적이지 않습니다.
2개의 좋아요
Alex_王
(Alex 王)
8월 7, 2023, 6:09오후
14
시간 간격을 가진 일회성 구독 문제를 가격 객체에 새로운 메타데이터(“recurring:0/1”)를 추가하여 성공적으로 해결했습니다. 그리고 price[:metadata][:recurring]=="0"인 가격으로 구독을 생성하려고 하면 Subscription 객체의 cancel_at_end 값을 true로 설정합니다.
그런 다음 일회성 가격을 생성할 때 여전히 간격(연, 월, 일, 주)을 선택해야 하지만 “recurring” 상자를 체크하지 않아야 합니다.
그리고 사용자가 구독하면 백엔드가 종료일에 종료되는 반복 구독을 생성합니다. 사용자는 스스로 갱신을 취소할 필요가 없습니다.
그러나 내가 생성한 제품을 삭제할 수 없다는 것을 발견했습니다. Cannot delete products on Discourse Subscriptions - #2 by Jonathan5 를 참고하세요.
正在上傳: image.png…
이것이 제 문제입니다. 제품을 삭제할 수 없습니다. Sho
uld I delete them on stripe?
1개의 좋아요
이런 복합적인 주제들을 따라가기가 힘들어요. 모두 잘 되시길 바랍니다. 플러그인을 꽤 오래 전에 사용해서 실제로 도움을 드리기 어렵네요, 죄송합니다.
2개의 좋아요
이 주제가 좀 엉켜버린 것 같습니다. 어떻게 하면 깔끔하게 정리할 수 있을지 바로 떠오르지 않네요.
다만, 추적을 더 쉽게 하기 위해 한 주제당 하나의 이슈/기능만 다루도록 하는 걸 제안드립니다.
3개의 좋아요
@Alex_王 @Jonathan5 @nathank
원하시면 업데이트된 코드를 테스트해 보실 수 있습니다. 이 PR의 브랜치를 확인해 보세요:
develop ← feature/rework-admin-page
changes requested 03:07PM - 17 Oct 23 UTC
웹훅 메시지를 전달하기 위해 로컬에서 stripe cli를 실행해야 합니다. 사용할 명령어는 다음과 같습니다:
stripe listen --forward-to http://localhost:4200/subscriptions/hooks --api-key yourapikey
또한 discourse 인스턴스에 stripe 웹훅 시크릿을 추가해야 합니다(플러그인 설정인 "webhook secret"으로). stripe의 웹훅 생성 양식에서 오른쪽의 코드 샘플에서 찾을 수 있습니다.
데이터 구조와 Discourse 데이터 구조가 어떻게 연결되는지 개략적으로 보여줄 짧은 영상을 만들었습니다:
이 의견에 거의 동의하지만, 이제 수정되었어야 합니다. 이 플러그인을 사용하면 stripe에서 원하는 것(결제 방법 / 세금 / 가격표 등)을 모두 구성할 수 있으며, 모두 정상적으로 작동해야 합니다.
플러그인은 단순히 Discourse 사용자와 stripe 고객 간의 연결을 관리할 뿐이며, 제품, 플랜 등의 생성은 완전히 stripe 대시보드에서 수행됩니다.
그래도 버그가 있을 수 있습니다. 무언가를 발견하시면 제보해 주세요.
3개의 좋아요
nathank
(Nathan Kershaw)
9월 7, 2023, 10:44오후
18
이 포크를 좀 더 다듬은 후 공식 플러그인의 PR 요청으로 제출할 계획이신 건가요? 그렇다면 정말 훌륭하네요!!! 이 작업에 대한 훌륭한 노력과 열정에 감사드립니다.
그렇다면 곧 직접 사용해 볼게요. 물론 완전히 테스트하려면 좀 더 이리저리 만져봐야 할 것 같습니다.
nathank
(Nathan Kershaw)
9월 12, 2023, 7:09오전
19
이것을 어디서 실행하나요? 루트 권한으로 서버에서 실행하나요, 아니면 docker 컨테이너 내부에서 실행하나요? 그리고 /subscriptions/hooks 앞에 우리의 인스턴스 URL을 사용하는 것이 맞나요?
또한 제가 올바른 작업을 하고 있는지 확인하기 위해, 공식 플러그인 대신 이것을 설치하는 것이 맞나요?
git clone https://github.com/spirobel/discourse-subscriptions -b "feature/rework-admin-page"
1개의 좋아요
이것은 컴퓨터에서 로컬로 실행되는 개발용 인스턴스에 대해서만 필요합니다. 예를 들어, 영상에서 제 discourse 인스턴스가 localhost:4200에서 실행되는 것을 볼 수 있는데, 이는 제 컴퓨터에서 실행되고 있다는 뜻입니다.
이 환경을 그대로 재현하고 싶다면 이 가이드를 따를 수 있습니다:
Developing using Docker
Since Discourse runs in Docker, you should be able to run Discourse directly from your source directory using a Discourse development container.
Pros: No need to install any system dependencies, no configuration needed at all for setting up a development environment quickly.
Cons: Will be slightly slower than the native dev environment on Ubuntu, and much slower than a native install on MacOS.
See also Developing Discourse using a Dev Container …
Stripe 서버가 제 로컬 네트워크의 localhost:4200 주소를 도달할 수 없기 때문에, Stripe 서버에서 오는 웹훅 요청을 릴레이하기 위해 이 명령을 실행하는 것이 필요합니다.
Nathan Kershaw:
이것을 어디서 실행하나요? 서버에서 루트 권한으로 실행하나요, 아니면 docker 컨테이너 안에서 실행하나요? 그리고 /subscriptions/hooks 앞에 인스턴스 URL을 사용하는 건가요?
그리고 제가 올바른 일을 하고 있는지 확인하기 위해, 이것은 공식 플러그인 대신 설치하는 것인가요?
인터넷에 연결된 서버에서 이것을 시도해 보려면 공식 튜토리얼의 웹훅 구성을 따를 수 있습니다: Discourse Subscriptions Plugin
실제 고객 데이터가 있고 구버전의 discourse subscriptions 플러그인이 설치된 인스턴스에 (아직) 설치하지 마세요. 두 버전이 충돌하기 때문에 두 번째 스테이징 서버에서 시도해 보세요.
이것을 테스트해 주셔서 감사합니다! 아직 계정이 없는 방문자들도 플랜을 구매할 수 있게 됩니다. 그들은 결제 후 자동으로 discourse 인스턴스에 초대되고, 적절한 그룹 멤버십을 갖게 됩니다.
2개의 좋아요
nathank
(Nathan Kershaw)
9월 12, 2023, 6:26오후
21
저는 relatively 조용한 라이브 사이트(betterstreets.nz )를 운영하고 있습니다. 이전 실험이 사실상 실패하여 저를 포함해 고객은 총 3명뿐입니다. 필요하면 이전 플러그인과 그 데이터를 제거하고 그곳에서 테스트하는 데 전혀 문제가 없습니다(다만 올바른 Rails 콘솔 명령어에 대한 도움이 필요할 것 같습니다). 그런 경우에도 여전히 충돌이 발생하나요?