Je configure un forum Discourse protégé pour un club automobile et je rencontre des problèmes pour qu’un abonné accède au site. J’ai actuellement un code personnalisé qui vérifie si l’utilisateur fait partie d’un groupe. Sinon, il est redirigé vers notre site Web, qui contient des liens d’achat Stripe pour chacun des trois abonnements que nous proposons.
Voici le code :
<script type="text/discourse-plugin" version="0.8.42">
api.onPageChange((url, title) => {
const allowedGroups = ['Lite', 'Member', 'VIP', 'staff'];
const isUserInAllowedGroup = api.getCurrentUser().groups.some(group => allowedGroups.includes(group.name));
if (!isUserInAllowedGroup) {
window.location.href = "https://centralcoastdriversclub.webflow.io/select-a-plan";
}
});
</script>
J’ai lu la documentation sur l’installation, configuré les trois événements webhook et suivi tout à la lettre, mais je n’arrive toujours pas à le faire fonctionner correctement. Mon premier problème est que lorsque j’utilise les liens d’achat de produits de Stripe sur mon site Web, les webhooks semblent renvoyer une erreur 422 avec « email not found » pour checkout.session.completed et « customer not found » pour customer.subscription.updated. Cela ne crée bien sûr pas d’abonnement dans Discourse ni n’ajoute l’utilisateur au groupe. Je voudrais idéalement avoir un lien depuis mon site Web qui dirige les gens vers l’abonnement spécifique qu’ils achètent.
Si je teste via l’URL du forum /s/subscriptions, les membres sont ajoutés à Discourse sous l’onglet abonnements, mais malheureusement ne sont toujours pas ajoutés à leur groupe respectif. J’ai également remarqué qu’en passant par Discourse, il utilise un lien dynamique qui verrouille l’e-mail au compte de l’utilisateur, intéressant !
Comme vous l’avez peut-être compris d’après mon code et l’explication précédente, si l’utilisateur n’est pas ajouté au bon groupe, il ne peut pas afficher le forum car le code le redirige.
J’ai dû manquer quelque chose, mais je n’arrive pas à le comprendre.
Toute aide est grandement appréciée, merci d’avance !