2 votes

IPN pour les abonnements Paypal - problème avec les utilisateurs qui s'abonnent plusieurs fois

J'utilise les abonnements Paypal et la notification instantanée de paiement (IPN) pour gérer les abonnés sur mon site.

La plupart du temps, cela fonctionne bien, mais j'ai rencontré un problème occasionnel.

En général, si un utilisateur annule son abonnement, j'attends la notification de "fin de terme" (subscr_eot) avant de désactiver l'accès à mon site.

Ainsi, s'ils paient d'avance pour le mois entier, puis annulent immédiatement, ils ont toujours accès pour le reste du mois (comme il se doit).

Mais certains utilisateurs rencontrent ce problème lorsqu'ils.. :

  1. Annuler leur abonnement
  2. Avant que la "fin du terme" ne soit atteinte, ils décident de se réabonner.
  3. Lorsque la "fin du terme" est atteinte pour leur premier abonnement, mon application reçoit la notification et envoie un e-mail à l'utilisateur avec quelque chose comme "votre compte a été désactivé, si vous voulez vous réinscrire, vous pouvez le faire en cliquant ici".
  4. Cela les perturbe parce qu'ils pensent... c'est bizarre, je pensais m'être abonné il y a une semaine (et ils l'ont fait). Ils s'inscrivent donc à nouveau. Maintenant, ils ont deux abonnements simultanés à mon site et je reçois un e-mail d'assistance dans un mois ou deux ("wtf, vous m'avez facturé deux fois ce mois-ci, imbécile !)

Je n'ai donc pas trouvé de bon moyen de résoudre ce problème. Je pense que la meilleure solution serait d'effectuer un appel supplémentaire à l'API lorsque la notification de "fin de terme" est reçue, qui demanderait à Paypal "Cette personne s'est-elle déjà réinscrite ?". Si c'est le cas, il n'est pas nécessaire d'envoyer cet e-mail. Mais je n'ai pas encore vu de moyen de faire cet appel API.

Une autre solution consiste à désactiver leur compte immédiatement lorsqu'ils annulent (la notification "subscr_cancel"), mais je reçois alors différents courriels de support en colère "hey, j'ai prépayé pour le mois entier, pourquoi mon compte a-t-il déjà été désactivé !!!".

Quelqu'un d'autre a résolu ce problème ?

1voto

David Dietz Points 11

Je sais que c'est un vieux fil de discussion, mais je n'ai pas vu de réponse à cette question, alors si quelqu'un se pose la même question que moi, voici une solution.

Si quelqu'un annule son compte (subscr_cancel) avant la fin de son terme (subscr_eot), je le configurerais dans ma base de données pour le gérer. Par exemple, si vous avez une table "Utilisateurs" dans votre base de données, il suffit d'ajouter un nouveau champ "int" et de l'appeler "Term". Par défaut, ce champ doit être défini sur "0". Ensuite, à l'intérieur de votre IPN, configurez-le de telle sorte que si un utilisateur annule son abonnement avant la fin de la période, le champ "Term" de cet utilisateur prend la valeur "1". Si cet utilisateur se réabonne à vos services, l'IPN remet le champ "Terme" de cet utilisateur à "0".

Ensuite, à l'intérieur de votre script de mailing, il suffit de vérifier le champ "Term" pour cet utilisateur lorsqu'il s'exécute pour la fin du trimestre. S'il est défini à "0", n'envoyez pas l'email. S'il a la valeur "1", envoyez l'e-mail en disant "Adios !".

0voto

dar Points 4508

Pour autant que je sache, il n'y a pas d'api paypal pour examiner les abonnements si vous utilisez les boutons standard/pro de paiement du site web, ce que je suppose que vous faites.

Je gère ce problème en conservant l'état actif/annulé/réabonné dans ma base de données et en mettant à jour l'état en fonction des messages IPN que je reçois de Paypal. Je fais correspondre les messages IPN à mes utilisations avec la fonction custom dans le bouton, qui est renvoyé dans chaque message IPN.

Il existe également de nombreux tiers qui vous aident à gérer ce processus, car l'API de Paypal est un peu faible dans ce domaine. Recurly en est un que j'ai examiné et que je prévois de mettre en œuvre, et il en existe d'autres.

0voto

Alister Bulman Points 12913

Citer : Re : Quand le subscr_eot est-il émis ?

Si vous avez commencé à accepter des abonnements après novembre 2009, les identifiants d'abonnés commenceront par ' '. I- et ne renverront pas de "subscr_eot" à la fin de leur temps. Paypal attend de vous que vous preniez note de la durée de l'abonnement et que vous mettiez à jour le compte pour le déclasser (ou autre) à l'expiration de cette période, à moins que le client ne paie à nouveau entre-temps.

0voto

JMHeap Points 66

Comment empêcher les paiements PayPal en double ?

Vous devez ajouter un identifiant unique au paramètre "facture" et activer l'option "Bloquer les paiements en double" dans la section "Profil" > "Mes outils de vente" de votre compte sur www.paypal.com.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X