Cancellation of recurring payment in Paypal doesn't update in s2member?

Hi there

I have just cancelled a recurring payment for a customer in paypal. A correct email was received saying this. Good. When the said user logs in, their account now shows when the account access will end (in a widget for MY MEMBERSHIP). Good. But, in s2member, if I go to the user’s account there is no EOT set… so will the account access actually end on the correct date? I doubt it, because I am finding users in our database who have access, but have not paid in the last year… could this be a bug in s2member…? Also, should the Role automatically change? to one that is now annual instead of recurring…

To note: A customer recently cancelled her recurring payment and the EOT was set correctly (although role didn’t change)… so could it be that when I as an Admin cancel a customer’s recurring payment, s2 is not picking it up 100% correctly?

Thanks for help on this important issue…

Hi Dylan.

There are a couple of things that could be happening there, from what you tell me.

For the EOT not set in the user’s profile after ending the subscription, it’s probably related to this: Members no longer demoted after PayPal subscription suspended

It’d be good if enable logging for some time, so that if you catch this happening again, we can review the logs for the relevant entries. WP Admin > s2Member > Log Files

For the user that had an EOT time, but nothing happened, could you check if you have the Auto EOT Behavior enabled and configured? WP Admin > s2Member > PayPal Options > Auto EOT Behavior

I look forward to your update. :slight_smile:

Hi Cristian

So has:
For the EOT not set in the user’s profile after ending the subscription, it’s probably related to this: Members no longer demoted after PayPal subscription suspended
been fixed?
Have enabled logging on your instruction even although it says Never do this on a live site? Then I cancelled a recurring account, cannot find any mention on the logs though - which one should it be on and which is useful to you? should it show up immediately?

These are my settings for Auto EOT Behaviour:

Thanks

Dylan

Not yet. I’m still working on it. [quote=“pa7, post:3, topic:5577”]
although it says Never do this on a live site?
[/quote]

It’s fine to do it while troubleshooting. That message is to prevent a site owner forgetting it enabled forever.

I cancelled a recurring account, cannot find any mention on the logs though - which one should it be on and which is useful to you? should it show up immediately?

Almost immediately, yes. There could be relevant info in the paypal or core logs. You can look for the entries related to your test based on the subscr ID.

Was this subscription created from an s2Member button/form, or was it created some other way or earlier?

Could you test creating a new subscription, even if for 1 cent for 1 day, and then cancel it? See if an EOT is set, and you get log entries for those.

Let me know how it goes. :slight_smile:

These are my settings for Auto EOT Behaviour:

That looks good.

Hi, it has shown up now… seems not to be immediate… Here is the example of a recurring customer being cancelled by me in paypal:

-------- Output string/vars: ( Tue Jan 29, 2019 4:40:29 pm UTC ) --------
PROFILEID=I%2dHY9JA7YADG4W&STATUS=Cancelled&AUTOBILLOUTAMT=AddToNextBilling&DESC=A%2480%20recurring%20pay%20Organisation%20M%2fship&MAXFAILEDPAYMENTS=2&SUBSCRIBERNAME=Stanthorpe%20PermacultureGroup&PROFILESTARTDATE=2019%2d08%2d10T14%3a00%3a00Z&PROFILEREFERENCE=1565566782%3a0%20D%3a1%20Y%7epermacultureaustralia%2eorg%2eau%7e19%3ano_mag%2corg%2clisting%2ccourses%2cdiscounts&NUMCYCLESCOMPLETED=0&NUMCYCLESREMAINING=0&OUTSTANDINGBALANCE=0%2e00&FAILEDPAYMENTCOUNT=0&LASTPAYMENTDATE=2018%2d08%2d11T11%3a39%3a52Z&LASTPAYMENTAMT=80%2e00&TRIALAMTPAID=0%2e00&REGULARAMTPAID=0%2e00&AGGREGATEAMT=0%2e00&AGGREGATEOPTIONALAMT=0%2e00&FINALPAYMENTDUEDATE=1970%2d01%2d01T00%3a00%3a00Z&TIMESTAMP=2019%2d01%2d29T16%3a40%3a29Z&CORRELATIONID=fe8b78dedcaa5&ACK=Success&VERSION=71%2e0&BUILD=46457558&BILLINGPERIOD=Year&BILLINGFREQUENCY=1&TOTALBILLINGCYCLES=0&CURRENCYCODE=AUD&AMT=80%2e00&SHIPPINGAMT=0%2e00&TAXAMT=0%2e00&REGULARBILLINGPERIOD=Year&REGULARBILLINGFREQUENCY=1&REGULARTOTALBILLINGCYCLES=0&REGULARCURRENCYCODE=AUD&REGULARAMT=80%2e00&REGULARSHIPPINGAMT=0%2e00&REGULARTAXAMT=0%2e00
array (
‘PROFILEID’ => ‘I-HY9JA7YADG4W’,
‘STATUS’ => ‘Cancelled’,
‘AUTOBILLOUTAMT’ => ‘AddToNextBilling’,
‘DESC’ => ‘A$80 recurring pay Organisation M/ship’,
‘MAXFAILEDPAYMENTS’ => ‘2’,
‘SUBSCRIBERNAME’ => ‘Stanthorpe PermacultureGroup’,
‘PROFILESTARTDATE’ => ‘2019-08-10T14:00:00Z’,
‘PROFILEREFERENCE’ => ‘1565566782:0 D:1 Y~permacultureaustralia.org.au~19:no_mag,org,listing,courses,discounts’,
‘NUMCYCLESCOMPLETED’ => ‘0’,
‘NUMCYCLESREMAINING’ => ‘0’,
‘OUTSTANDINGBALANCE’ => ‘0.00’,
‘FAILEDPAYMENTCOUNT’ => ‘0’,
‘LASTPAYMENTDATE’ => ‘2018-08-11T11:39:52Z’,
‘LASTPAYMENTAMT’ => ‘80.00’,
‘TRIALAMTPAID’ => ‘0.00’,
‘REGULARAMTPAID’ => ‘0.00’,
‘AGGREGATEAMT’ => ‘0.00’,
‘AGGREGATEOPTIONALAMT’ => ‘0.00’,
‘FINALPAYMENTDUEDATE’ => ‘1970-01-01T00:00:00Z’,
‘TIMESTAMP’ => ‘2019-01-29T16:40:29Z’,
‘CORRELATIONID’ => ‘fe8b78dedcaa5’,
‘ACK’ => ‘Success’,
‘VERSION’ => ‘71.0’,
‘BUILD’ => ‘46457558’,
‘BILLINGPERIOD’ => ‘Year’,
‘BILLINGFREQUENCY’ => ‘1’,
‘TOTALBILLINGCYCLES’ => ‘0’,
‘CURRENCYCODE’ => ‘AUD’,
‘AMT’ => ‘80.00’,
‘SHIPPINGAMT’ => ‘0.00’,
‘TAXAMT’ => ‘0.00’,
‘REGULARBILLINGPERIOD’ => ‘Year’,
‘REGULARBILLINGFREQUENCY’ => ‘1’,
‘REGULARTOTALBILLINGCYCLES’ => ‘0’,
‘REGULARCURRENCYCODE’ => ‘AUD’,
‘REGULARAMT’ => ‘80.00’,
‘REGULARSHIPPINGAMT’ => ‘0.00’,
‘REGULARTAXAMT’ => ‘0.00’,
)

s2member HAS NOT set an auto EOT for this user…

Yes, our website has buttons on it for people to join - there is no free subscription prior to this. Just click the button, fill out profile, and pay…

Hope this will help you figure out the problem…

Thanks
Dylan

Nice! I wanted to help you already, and now I want it even more! :smiley: https://permacultureglobal.org/users/9426-cristian-lavaque

‘PROFILEID’ => ‘I-HY9JA7YADG4W’,

I see… It’s the ID with the I prefix instead of the S. So maybe it is related to this: Members no longer demoted after PayPal subscription suspended

What ID does the user’s profile have?

Also, I was expecting to see subscr_id, not PROFILEID… I’ll have to study this some more.

Oh cool - you’re a fellow permie!! awesome…

not sure where to find the ID you’re referring to - in the URL there is: user_id=756 The subscr_id, and PROFILEID seem to be the same?

this is what is in the record (from the Exported file):
756 spg spg stanthorpe.permaculture.group@gmail.com 2018-08-11 11:39:53 1533987594:$P$Bn36aZqx1n9zTsWzZxptTZ2qbzhxKh1 0 Stanthorpe PermacultureGroup 0 0 s2member_level19 no_mag,org,listing,courses,discounts 180.181.136.159 fresh 0 Stanthorpe PermacultureGroup spg true false true {“s2member_level19”:true,“access_s2member_ccap_no_mag”:true,“access_s2member_ccap_org”:true,“access_s2member_ccap_listing”:true,“access_s2member_ccap_courses”:true,“access_s2member_ccap_discounts”:true} 0 {“level”:1533987594,“level19”:1533987594} 1 1533987594 1 permacultureaustralia.org.au paypal {“txn_type”:“subscr_signup”,“subscr_id”:“I-HY9JA7YADG4W”,“custom”:“permacultureaustralia.org.au”,“txn_id”:“I-HY9JA7YADG4W”,“period1”:“0 D”,“period3”:“1 Y",“mc_amount1”:“0.00”,“mc_amount3”:“80.00”,“mc_gross”:“80.00”,“mc_currency”:“AUD”,“tax”:“0.00”,“recurring”:“80.00”,“payer_email”:"stanthorpe.permaculture.group@gmail.com”,“first_name”:“Stanthorpe”,“last_name”:“PermacultureGroup”,“option_name1”:“Originating Domain”,“option_selection1”:“permacultureaustralia.org.au”,“option_name2”:“Customer IP Address”,“option_selection2”:“180.181.136.159”,“item_name”:“A$80 recurring pay Organisation M/ship”,“item_number”:“19:no_mag,org,listing,courses,discounts”,“period”:“0 D”,“mc_amount”:“0.00”,“option_name”:“Originating Domain”,“option_selection”:“permacultureaustralia.org.au”,“proxy_verified”:“paypal”,“subscr_gateway”:“paypal”,“subscr_baid”:“I-HY9JA7YADG4W”,“subscr_cid”:“I-HY9JA7YADG4W”,“level”:“19”,“ccaps”:“no_mag,org,listing,courses,discounts”,“eotper”:null,“ip”:“180.181.136.159”,“initial_term”:“0 D”,“initial”:“80.00”,“regular”:“80.00”,“regular_term”:“1 Y”,“currency”:“AUD”,“currency_symbol”:"$"} 1533987596 I-HY9JA7YADG4W I-HY9JA7YADG4W 1548171052 {“1533987594.0001”:“level0”,“1533987594.0002”:“level1”,“1533987594.0003”:“level2”,“1533987594.0004”:“level3”,“1533987594.0005”:“level4”,“1533987594.0006”:“level5”,“1533987594.0007”:“level6”,“1533987594.0008”:“level7”,“1533987594.0009”:“level8”,“1533987594.0010”:“level9”,“1533987594.0011”:“level10”,“1533987594.0012”:“level11”,“1533987594.0013”:“level12”,“1533987594.0014”:“level13”,“1533987594.0015”:“level14”,“1533987594.0016”:“level15”,“1533987594.0017”:“level16”,“1533987594.0018”:“level17”,“1533987594.0019”:“level18”,“1533987594.0020”:“level19”,“1533987594.0021”:“ccap_no_mag”,“1533987594.0022”:“ccap_org”,“1533987594.0023”:“ccap_listing”,“1533987594.0024”:“ccap_courses”,“1533987594.0025”:“ccap_discounts”} true QLD Australia agree by email Your personal details are stored on a secure server. Stanthorpe Permaculture Group [“None”] 045800000 4380 Stanthorpe

1 Like

:green_heart:

this is what is in the record (from the Exported file)

Do you mean the CSV file from s2Member Pro > Import / Export > User Export?

If so, then the subscr_id matches the one in the notification you showed me earlier. I’ll need to study this some more. I have it in my list now to investigate it further. I’ll let you know if I have any other questions.

Are you using PayPal Standard, Express Checkout, Pro or PayFlow?

You can keep logging enabled for the time being, and if you notice another cancellatoin or payment not reflected in the user’s profile, please reply with an update here, including the relevant log entries.

yes, from the CSV file from export…

We are using Paypal ‘Business’ I think - where exactly does it show?? paypal is awful!

yes, will do…

1 Like

Cool, thanks! :slight_smile:

Here is an example of a user requesting a refund of a payment and this not leading to an EOT !? this happened some time ago, but is in the log for yesterday - not sure the process of how paypal sends through data…

LOG ENTRY: Thu Jan 31st, 2019 @ precisely 11:40 pm UTC
PHP v7.2.14 :: WordPress v4.9.9 :: s2Member v170722 :: s2Member Pro v170722
Memory 80.79 MB :: Real Memory 102.00 MB :: Peak Memory 80.84 MB :: Real Peak Memory 102.00 MB
permacultureaustralia.org.au/wp-cron.php?doing_wp_cron=1548978019.5236320495605468750000
User-Agent: WordPress/4.9.9; https://permacultureaustralia.org.au
-------- Input vars: ( Thu Jan 31, 2019 11:40:20 pm UTC ) --------
array (
‘METHOD’ => ‘GetRecurringPaymentsProfileDetails’,
‘PROFILEID’ => ‘I-H79YNHKUKK03’,
‘VERSION’ => ‘71.0’,
‘USER’ => ‘xxxxxx.permacultureinternational.org’,
‘PWD’ => ‘xxxxxxxx/PWD/SIG’,
‘SIGNATURE’ => ‘xxxxxxxx/PWD/SIG’,
)
-------- Output string/vars: ( Thu Jan 31, 2019 11:40:21 pm UTC ) --------
PROFILEID=I%2dH79YNHKUKK03&STATUS=Cancelled&AUTOBILLOUTAMT=AddToNextBilling&DESC=Cost%20%2445%20AUD%20per%20year%27s%20membership%20%28recurring%20annual%20fee%2c%2e%2e%2e&MAXFAILEDPAYMENTS=2&SUBSCRIBERNAME=xxxxx%20xxxxxxxxx&PROFILESTARTDATE=2017%2d12%2d08T13%3a00%3a00Z&PROFILEREFERENCE=1512839673%3a0%20D%3a1%20Y%7epermacultureaustralia%2eorg%2eau%7e2&NUMCYCLESCOMPLETED=2&NUMCYCLESREMAINING=18446744073709551614&OUTSTANDINGBALANCE=0%2e00&FAILEDPAYMENTCOUNT=0&LASTPAYMENTDATE=2018%2d12%2d09T13%3a56%3a34Z&LASTPAYMENTAMT=45%2e00&TRIALAMTPAID=0%2e00&REGULARAMTPAID=90%2e00&AGGREGATEAMT=90%2e00&AGGREGATEOPTIONALAMT=0%2e00&FINALPAYMENTDUEDATE=1970%2d01%2d01T00%3a00%3a00Z&TIMESTAMP=2019%2d01%2d31T23%3a40%3a21Z&CORRELATIONID=61c5f7a06d125&ACK=Success&VERSION=71%2e0&BUILD=46457558&BILLINGPERIOD=Year&BILLINGFREQUENCY=1&TOTALBILLINGCYCLES=0&CURRENCYCODE=AUD&AMT=45%2e00&SHIPPINGAMT=0%2e00&TAXAMT=0%2e00&REGULARBILLINGPERIOD=Year&REGULARBILLINGFREQUENCY=1&REGULARTOTALBILLINGCYCLES=0&REGULARCURRENCYCODE=AUD&REGULARAMT=45%2e00&REGULARSHIPPINGAMT=0%2e00&REGULARTAXAMT=0%2e00
array (
‘PROFILEID’ => ‘I-H79YNHKUKK03’,
‘STATUS’ => ‘Cancelled’,
‘AUTOBILLOUTAMT’ => ‘AddToNextBilling’,
‘DESC’ => ‘Cost $45 AUD per year’s membership (recurring annual fee,…’,
‘MAXFAILEDPAYMENTS’ => ‘2’,
‘SUBSCRIBERNAME’ => ‘xxxx xxxxxxxxxf’,
‘PROFILESTARTDATE’ => ‘2017-12-08T13:00:00Z’,
‘PROFILEREFERENCE’ => ‘1512839673:0 D:1 Y~permacultureaustralia.org.au~2’,
‘NUMCYCLESCOMPLETED’ => ‘2’,
‘NUMCYCLESREMAINING’ => ‘18446744073709551614’,
‘OUTSTANDINGBALANCE’ => ‘0.00’,
‘FAILEDPAYMENTCOUNT’ => ‘0’,
‘LASTPAYMENTDATE’ => ‘2018-12-09T13:56:34Z’,
‘LASTPAYMENTAMT’ => ‘45.00’,
‘TRIALAMTPAID’ => ‘0.00’,
‘REGULARAMTPAID’ => ‘90.00’,
‘AGGREGATEAMT’ => ‘90.00’,
‘AGGREGATEOPTIONALAMT’ => ‘0.00’,
‘FINALPAYMENTDUEDATE’ => ‘1970-01-01T00:00:00Z’,
‘TIMESTAMP’ => ‘2019-01-31T23:40:21Z’,
‘CORRELATIONID’ => ‘61c5f7a06d125’,
‘ACK’ => ‘Success’,
‘VERSION’ => ‘71.0’,
‘BUILD’ => ‘46457558’,
‘BILLINGPERIOD’ => ‘Year’,
‘BILLINGFREQUENCY’ => ‘1’,
‘TOTALBILLINGCYCLES’ => ‘0’,
‘CURRENCYCODE’ => ‘AUD’,
‘AMT’ => ‘45.00’,
‘SHIPPINGAMT’ => ‘0.00’,
‘TAXAMT’ => ‘0.00’,
‘REGULARBILLINGPERIOD’ => ‘Year’,
‘REGULARBILLINGFREQUENCY’ => ‘1’,
‘REGULARTOTALBILLINGCYCLES’ => ‘0’,
‘REGULARCURRENCYCODE’ => ‘AUD’,
‘REGULARAMT’ => ‘45.00’,
‘REGULARSHIPPINGAMT’ => ‘0.00’,
‘REGULARTAXAMT’ => ‘0.00’,
)

here is another of someone I cancelled:

LOG ENTRY: Thu Jan 31st, 2019 @ precisely 8:00 pm UTC
PHP v7.2.14 :: WordPress v4.9.9 :: s2Member v170722 :: s2Member Pro v170722
Memory 80.89 MB :: Real Memory 102.00 MB :: Peak Memory 80.94 MB :: Real Peak Memory 102.00 MB
permacultureaustralia.org.au/wp-cron.php?doing_wp_cron=1548964837.3564009666442871093750
User-Agent: WordPress/4.9.9; https://permacultureaustralia.org.au
-------- Input vars: ( Thu Jan 31, 2019 8:00:42 pm UTC ) --------
array (
‘METHOD’ => ‘GetRecurringPaymentsProfileDetails’,
‘PROFILEID’ => ‘I-EA3R0DSRKNUG’,
‘VERSION’ => ‘71.0’,
‘USER’ => ‘xxxxxxxx.permacultureinternational.org’,
‘PWD’ => ‘xxxxxxxx/PWD/SIG’,
‘SIGNATURE’ => ‘xxxxxxxx/PWD/SIG’,
)
-------- Output string/vars: ( Thu Jan 31, 2019 8:00:43 pm UTC ) --------
PROFILEID=I%2dEA3R0DSRKNUG&STATUS=Cancelled&AUTOBILLOUTAMT=AddToNextBilling&DESC=Discount%3a%20%2440%2e00%20off%2e%20%28Now%3a%20%2415%2e00%20%2f%20yearly%29%20%7e%20ORIGINALLY%2e%2e%2e&MAXFAILEDPAYMENTS=2&SUBSCRIBERNAME=xxxxxxxx%20xxxx&PROFILESTARTDATE=2019%2d11%2d10T13%3a00%3a00Z&PROFILEREFERENCE=1573498203%3a0%20D%3a1%20Y%7epermacultureaustralia%2eorg%2eau%7e2%3apip_paper%2cord_discounts&NUMCYCLESCOMPLETED=0&NUMCYCLESREMAINING=0&OUTSTANDINGBALANCE=0%2e00&FAILEDPAYMENTCOUNT=0&LASTPAYMENTDATE=2018%2d11%2d11T06%3a51%3a05Z&LASTPAYMENTAMT=15%2e00&TRIALAMTPAID=0%2e00&REGULARAMTPAID=0%2e00&AGGREGATEAMT=0%2e00&AGGREGATEOPTIONALAMT=0%2e00&FINALPAYMENTDUEDATE=1970%2d01%2d01T00%3a00%3a00Z&TIMESTAMP=2019%2d01%2d31T20%3a00%3a43Z&CORRELATIONID=cd3b027a4e812&ACK=Success&VERSION=71%2e0&BUILD=46457558&BILLINGPERIOD=Year&BILLINGFREQUENCY=1&TOTALBILLINGCYCLES=0&CURRENCYCODE=AUD&AMT=15%2e00&SHIPPINGAMT=0%2e00&TAXAMT=0%2e00&REGULARBILLINGPERIOD=Year&REGULARBILLINGFREQUENCY=1&REGULARTOTALBILLINGCYCLES=0&REGULARCURRENCYCODE=AUD&REGULARAMT=15%2e00&REGULARSHIPPINGAMT=0%2e00&REGULARTAXAMT=0%2e00
array (
‘PROFILEID’ => ‘I-EA3R0DSRKNUG’,
‘STATUS’ => ‘Cancelled’,
‘AUTOBILLOUTAMT’ => ‘AddToNextBilling’,
‘DESC’ => ‘Discount: $40.00 off. (Now: $15.00 / yearly) ~ ORIGINALLY…’,
‘MAXFAILEDPAYMENTS’ => ‘2’,
‘SUBSCRIBERNAME’ => ‘xxxxxxxx xxxxx’,
‘PROFILESTARTDATE’ => ‘2019-11-10T13:00:00Z’,
‘PROFILEREFERENCE’ => ‘1573498203:0 D:1 Y~permacultureaustralia.org.au~2:pip_paper,ord_discounts’,
‘NUMCYCLESCOMPLETED’ => ‘0’,
‘NUMCYCLESREMAINING’ => ‘0’,
‘OUTSTANDINGBALANCE’ => ‘0.00’,
‘FAILEDPAYMENTCOUNT’ => ‘0’,
‘LASTPAYMENTDATE’ => ‘2018-11-11T06:51:05Z’,
‘LASTPAYMENTAMT’ => ‘15.00’,
‘TRIALAMTPAID’ => ‘0.00’,
‘REGULARAMTPAID’ => ‘0.00’,
‘AGGREGATEAMT’ => ‘0.00’,
‘AGGREGATEOPTIONALAMT’ => ‘0.00’,
‘FINALPAYMENTDUEDATE’ => ‘1970-01-01T00:00:00Z’,
‘TIMESTAMP’ => ‘2019-01-31T20:00:43Z’,
‘CORRELATIONID’ => ‘cd3b027a4e812’,
‘ACK’ => ‘Success’,
‘VERSION’ => ‘71.0’,
‘BUILD’ => ‘46457558’,
‘BILLINGPERIOD’ => ‘Year’,
‘BILLINGFREQUENCY’ => ‘1’,
‘TOTALBILLINGCYCLES’ => ‘0’,
‘CURRENCYCODE’ => ‘AUD’,
‘AMT’ => ‘15.00’,
‘SHIPPINGAMT’ => ‘0.00’,
‘TAXAMT’ => ‘0.00’,
‘REGULARBILLINGPERIOD’ => ‘Year’,
‘REGULARBILLINGFREQUENCY’ => ‘1’,
‘REGULARTOTALBILLINGCYCLES’ => ‘0’,
‘REGULARCURRENCYCODE’ => ‘AUD’,
‘REGULARAMT’ => ‘15.00’,
‘REGULARSHIPPINGAMT’ => ‘0.00’,
‘REGULARTAXAMT’ => ‘0.00’,
)

Going through the database bit by bit, there are some recent ones with the I- profile ID issue, but there were some users who hadn’t paid in the last year at all… so there is a comm issue for a long time…?? we’re losing money for each user who doesn’t correctly drop levels when they are supposed to… What can be done? Should we not offer recurring memberships any longer (as this seems the main source of these errors…)?