안녕하세요, 여러분! 문제를 겪고 있어 며칠째 고군분투하고 있지만 아직 해결하지 못해서, 혹시 여기서 도움을 주실 분이 있을까 해서 문의드립니다.
Discourse 3.4.0.beta1-dev Subscriptions 2.8.1 - f0b4984 Linux VM에서 Docker 설치
구독 플러그인을 설치하고 활성화했으며, 내장된 가격표를 사용할 때는 대부분 정상적으로 작동합니다. (가끔 구독 후 사용자가 그룹에 추가되지 않는 경우가 있지만, 이는 별도의 문제라고 생각합니다.)
하지만 익숙한 UX와 신뢰감을 주는 Stripe 가격표와 체크아웃을 사용해야 합니다. 이를 위해 웹훅 설정을 모두 마쳤고, 시크릿 등도 모두 구성했습니다. (현재 테스트 모드를 사용 중이므로 테스트 모드 키와 시크릿을 사용 중입니다.)
구독 페이지에 접근하고, 가격표에서 체크아웃 플로우를 거쳐 테스트 카드로 체크아웃하는 것까지는 성공합니다.
그러나 그 결과 Discourse에서 구독이 생성되지 않고, 사용자의 그룹에도 변경 사항이 없습니다. Stripe 대시보드의 웹훅을 확인해 보니, 다음 바디를 가진 422 응답을 받고 있습니다:
{
"errors": [
"customer not found"
]
}
여러 사용자로 시도해 봤지만 결과는 항상 동일합니다.
데이터베이스를 확인해 보니, Stripe 웹훅에 언급된 고객이 discourse_subscriptions_customers 테이블에 없고, discourse_subscriptions_subscriptions 테이블에도 해당하는 구독이 없습니다. 웹훅 호출이 처리되지 않기 때문에 이것이 예상된 결과일 수도 있다고 생각됩니다.
참고로, Stripe 웹훅 호출이 일반적으로 성공할 수 있다는 것은 확인했습니다. “Stripe 가격표 사용” 설정을 비활성화하고 내장 체크아웃을 통해 구독을 생성하면 모든 것이 정상적으로 작동합니다. 그리고 Stripe에서 구독을 취소하면 customer.subscription.deleted 웹훅이 문제없이 수신됩니다.
아마 제가 어리석은 실수를 했거나 설정이 올바르지 않은 것 같지만, 어떻게 해야 작동하는지 파악하는 데 큰 어려움을 겪고 있습니다.
디버깅을 위해 구독 플러그인에 새로운 설정을 추가했습니다. discourse_subscriptions_enable_verbose_logging이라고 하는 이 설정을 활성화하면 /logs 페이지로 이동하여 체크아웃 과정을 다시 시도해 보고 해당 플러그인에서 출력이 보이는지 확인할 수 있습니다. 관련 스크린샷을 DM으로 보내주시면 추가 디버깅을 도와드리겠습니다.