Page 1 of 2
Subscriptions aren't expiring
Posted:
December 18th, 2011, 6:43 pm
by titanwebdesigns
I'm using the s2member plugin (the free version) on one of my client's websites, and I'm noticing that expired membership are not deactivated and removed form the site as they should be. On several occasions, I've had to manually go through and delete those subscriptions that have expired. This is obviously a problem because people who have only paid for one-month access have continued to have access far past their term. I was hoping someone could shed some light on why this could be happening and what I can do to prevent it from happening in the future, as this problem is causing my client and I to lose money. Thanks.
Re: Subscriptions aren't expiring
Posted:
December 18th, 2011, 6:56 pm
by Eduan
Hi.
Under
WP Admin -> s2Member -> PayPal® Options-> Automatic EOT Behavior, have you set the option
Enable s2Member's Auto-EOT System? to
Yes ( enable the Auto-EOT System through WP-Cron )?
If not, try that and see if it works now.
Hope this helps.
Re: Subscriptions aren't expiring
Posted:
December 18th, 2011, 7:01 pm
by titanwebdesigns
It's currently set to Yes (enable the auto-EOT system through WP-Cron)
Re: Subscriptions aren't expiring
Posted:
December 18th, 2011, 7:11 pm
by Eduan
Could you post the entries with this problem from the logs in /wp-content/plugins/s2member-logs/, X'ing out any private information. Please put the logs inside a [Box] opening and closing tag.
Also, it is possible that another plugin is causing this problem. Could you, as a test, deactivate other plugins one by one? See if the problem goes away with one of them.
Thanks.
Re: Subscriptions aren't expiring
Posted:
December 18th, 2011, 7:18 pm
by titanwebdesigns
I don't see any logs in that folder. Some of the plugins I use are essential to the site and can't be deactivated, but I can deactivate the non-essential ones and see if the problem resolves.
Re: Subscriptions aren't expiring
Posted:
December 18th, 2011, 7:38 pm
by Eduan
If you can't see any logs then go to WP Admin -> s2Member -> PayPal® Options -> PayPal® Account Details and set Enable Logging Routines? to Yes, enable debugging, with API, IPN & Return Page logging.
Then you might need to wait in order to get some logs back. After that please post them.
Re: Subscriptions aren't expiring
Posted:
December 19th, 2011, 4:13 pm
by Raam Dev
Hi titanwebdesigns,
The initial cancellation IPN from PayPal is not grounds for an EOT:
*Understanding Cancellations* It's important to realize that a Cancellation is not an EOT ( End Of Term ). All that happens during a Cancellation event, is that billing is stopped, and it's understood that the Customer is going to lose access, at some point in the future. This does NOT mean, that access will be revoked immediately. A separate EOT event will automatically handle a (demotion or deletion) later, at the appropriate time; which could be several days, or even a year after the Cancellation took place.
*Some Hairy Details* There might be times whenever you notice that a Member's Subscription has been cancelled through your Payment Gateway... but, s2Member continues allowing the User access to your site as a paid Member. Please don't be confused by this... in 99.9% of these cases, the reason for this is legitimate. s2Member will only remove the User's Membership privileges when an EOT ( End Of Term ) is processed, a refund occurs, a chargeback occurs, or when a cancellation occurs - which would later result in a delayed Auto-EOT by s2Member.
s2Member will not process an EOT ( End Of Term ) until the User has completely used up the time they paid for. In other words, if a User signs up for a monthly Subscription on Jan 1st, and then cancels their Subscription on Jan 15th; technically, they should still be allowed to access the site for another 15 days, and then on Feb 1st, the time they paid for has completely elapsed. At that time, s2Member will remove their Membership privileges; by either demoting them to a Free Subscriber, or deleting their account from the system ( based on your configuration ). s2Member also calculates one extra day ( 24 hours ) into its equation, just to make sure access is not removed sooner than a Customer might expect.
Can you please check the EOT date for a cancelled user in
WP Admin -> Users -> Edit User -> Automatic EOT Time and see if that date has passed? Once the EOT date passes, the user should not have access.
If the EOT date
has passed and the user still has access, then we're looking at a different problem.
Re: Subscriptions aren't expiring
Posted:
December 21st, 2011, 8:52 am
by titanwebdesigns
The times have DEFINITELY passed. I've had to manually delete more than 50 members, some of whom paid for a one-month subscription back in November 2010 but still had access.
Re: Subscriptions aren't expiring
Posted:
December 21st, 2011, 9:23 am
by titanwebdesigns
I used to have Simple Press activated as a plugin. I deactivated it per your suggestion. Have there been any known issues with Simple Press and s2member?
Re: Subscriptions aren't expiring
Posted:
December 21st, 2011, 10:08 am
by titanwebdesigns
Here is what my log has generated since I activated the logs option. I deleted all the sensitive material, but know that all the fields list were originally populated. I hope this helps.
- Code: Select all
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.80 MB :: Real Memory 20.25 MB :: Peak Memory 19.88 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_signup',
'subscr_id' => '',
'last_name' => '',
'option_selection1' => 'www.aaronclarkmuscle.com',
'option_selection2' => '',
'residence_country' => 'US',
'mc_currency' => 'USD',
'item_name' => 'Members',
'business' => '',
'amount3' => '17.99',
'recurring' => '17.99',
'verify_sign' => '',
'payer_status' => 'unverified',
'payer_email' => '',
'first_name' => '',
'receiver_email' => '',
'payer_id' => '',
'option_name1' => 'Originating Domain',
'invoice' => '',
'option_name2' => 'Customer IP Address',
'reattempt' => '1',
'item_number' => '1',
'subscr_date' => '21:22:52 Dec 18, 2011 PST',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'period3' => '1 M',
'mc_amount3' => '17.99',
'ipn_track_id' => '',
's2member_log' =>
array (
0 => 'IPN received on: Mon Dec 19, 2011 5:23:15 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `web_accept|subscr_signup` ).',
4 => 's2Member `txn_type` identified as ( `web_accept|subscr_signup` ) w/o update vars.',
5 => 'Signup Confirmation Email sent to: "Alexander Skaggs" <wowerma@yahoo.com>.',
6 => 'Storing IPN signup vars into a Transient Queue. These will be processed on registration.',
),
'subscr_gateway' => 'paypal',
'eotper' => NULL,
'ccaps' => NULL,
'level' => '1',
'ip' => '',
'period1' => '0 D',
'mc_amount1' => '0.00',
'initial_term' => '0 D',
'initial' => '17.99',
'regular' => '17.99',
'regular_term' => '1 M',
)
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.37 MB :: Real Memory 20.25 MB :: Peak Memory 19.89 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'mc_gross' => '17.99',
'invoice' => '',
'protection_eligibility' => 'Ineligible',
'payer_id' => '',
'payment_date' => '21:22:54 Dec 18, 2011 PST',
'payment_status' => 'Completed',
'charset' => 'windows-1252',
'first_name' => 'Alexander',
'option_selection1' => 'www.aaronclarkmuscle.com',
'option_selection2' => '',
'mc_fee' => '0.82',
'notify_version' => '3.4',
'subscr_id' => '',
'custom' => 'www.aaronclarkmuscle.com',
'payer_status' => 'unverified',
'business' => '',
'verify_sign' => '',
'payer_email' => '',
'option_name1' => 'Originating Domain',
'option_name2' => 'Customer IP Address',
'txn_id' => '',
'payment_type' => 'instant',
'last_name' => '',
'receiver_email' => '',
'payment_fee' => '0.82',
'receiver_id' => '',
'txn_type' => 'subscr_payment',
'item_name' => 'Members',
'mc_currency' => 'USD',
'item_number' => '1',
'residence_country' => 'US',
'transaction_subject' => 'Members',
'payment_gross' => '17.99',
'ipn_track_id' => '',
's2member_log' =>
array (
0 => 'IPN received on: Mon Dec 19, 2011 5:23:18 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Mon Dec 19, 2011 5:23:23 am UTC. s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
6 => 'Skipping this IPN response, for now. The Subscr. ID is not associated with a registered Member.',
7 => 'Re-generating. This IPN will go into a Transient Queue; and be re-processed during registration.',
),
'subscr_gateway' => 'paypal',
'ccaps' => NULL,
'level' => '1',
'ip' => '',
)
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.42 MB :: Real Memory 20.25 MB :: Peak Memory 19.92 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1&s2member_paypal_proxy=paypal&s2member_paypal_proxy_verification=b16738ca2243302f6280e7591608c4e8
User-Agent: WordPress/3.3; http://www.aaronclarkmuscle.com/private
array (
'txn_type' => 'subscr_payment',
'mc_gross' => '17.99',
'invoice' => '',
'first_name' => 'Alexander',
'option_selection1' => 'www.aaronclarkmuscle.com',
'option_selection2' => '',
'subscr_id' => '',
'custom' => 'www.aaronclarkmuscle.com',
'payer_email' => '',
'option_name1' => 'Originating Domain',
'option_name2' => 'Customer IP Address',
'txn_id' => '',
'last_name' => '',
'item_name' => 'Members',
'mc_currency' => 'USD',
'item_number' => '1',
'subscr_gateway' => 'paypal',
'proxy_verified' => 'paypal',`
's2member_log' =>
array (
0 => 'IPN received on: Mon Dec 19, 2011 5:24:17 am UTC',
1 => 's2Member POST vars verified with a Proxy Key',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Mon Dec 19, 2011 5:24:22 am UTC. s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
6 => 'Updated Payment Times for this Member.',
),
'ccaps' => NULL,
'level' => '1',
'ip' => '',
's2member_paypal_proxy' => 'paypal',
's2member_paypal_proxy_verification' => '',
)
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.38 MB :: Real Memory 20.25 MB :: Peak Memory 19.90 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'transaction_subject' => 'Members',
'payment_date' => '03:53:33 Dec 14, 2011 PST',
'txn_type' => 'subscr_payment',
'subscr_id' => '',
'last_name' => '',
'residence_country' => 'US',
'item_name' => 'Members',
'payment_gross' => '17.99',
'mc_currency' => 'USD',
'business' => '',
'payment_type' => 'echeck',
'protection_eligibility' => 'Ineligible',
'verify_sign' => '',
'payer_status' => 'verified',
'payer_email' => '',
'txn_id' => '',
'receiver_email' => '',
'first_name' => 'Robert',
'payer_id' => '',
'receiver_id' => '',
'item_number' => '1',
'echeck_time_processed' => '16:13:35 Dec 19, 2011 PST',
'payment_status' => 'Completed',
'payment_fee' => '0.82',
'mc_fee' => '0.82',
'mc_gross' => '17.99',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => '',
's2member_log' =>
array (
0 => 'IPN received on: Tue Dec 20, 2011 12:13:46 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Tue Dec 20, 2011 12:13:51 am UTC. s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
6 => 'Skipping this IPN response, for now. The Subscr. ID is not associated with a registered Member.',
7 => 'Re-generating. This IPN will go into a Transient Queue; and be re-processed during registration.',
),
'subscr_gateway' => 'paypal',
'ccaps' => NULL,
'level' => '1',
'ip' => '',
)
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.39 MB :: Real Memory 20.25 MB :: Peak Memory 19.90 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'transaction_subject' => 'Members',
'payment_date' => '03:39:14 Dec 20, 2011 PST',
'txn_type' => 'subscr_payment',
'subscr_id' => '',
'last_name' => '',
'residence_country' => 'DE',
'item_name' => 'Members',
'payment_gross' => '17.99',
'mc_currency' => 'USD',
'business' => '',
'payment_type' => 'instant',
'protection_eligibility' => 'Ineligible',
'verify_sign' => '',
'payer_status' => 'verified',
'payer_email' => '',
'txn_id' => '',
'receiver_email' => '',
'first_name' => 'Torsten',
'payer_id' => '',
'receiver_id' => '',
'item_number' => '1',
'payment_status' => 'Completed',
'payment_fee' => '1.00',
'mc_fee' => '1.00',
'mc_gross' => '17.99',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => '',
's2member_log' =>
array (
0 => 'IPN received on: Tue Dec 20, 2011 11:39:39 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Tue Dec 20, 2011 11:39:44 am UTC. s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
6 => 'Updated Payment Times for this Member.',
),
'subscr_gateway' => 'paypal',
'ccaps' => NULL,
'level' => '1',
'ip' => '',
)
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.37 MB :: Real Memory 20.25 MB :: Peak Memory 19.90 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'transaction_subject' => 'Members',
'payment_date' => '03:44:48 Dec 20, 2011 PST',
'txn_type' => 'subscr_payment',
'subscr_id' => '',
'last_name' => '',
'residence_country' => 'BE',
'item_name' => 'Members',
'payment_gross' => '17.99',
'mc_currency' => 'USD',
'business' => '',
'payment_type' => 'instant',
'protection_eligibility' => 'Ineligible',
'verify_sign' => '',
'payer_status' => 'unverified',
'payer_email' => '',
'txn_id' => '',
'receiver_email' => '',
'first_name' => 'Ivan',
'payer_id' => '',
'receiver_id' => '',
'item_number' => '1',
'payment_status' => 'Completed',
'payment_fee' => '1.00',
'mc_fee' => '1.00',
'mc_gross' => '17.99',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => '',
's2member_log' =>
array (
0 => 'IPN received on: Tue Dec 20, 2011 11:45:10 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Tue Dec 20, 2011 11:45:16 am UTC. s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
6 => 'Skipping this IPN response, for now. The Subscr. ID is not associated with a registered Member.',
7 => 'Re-generating. This IPN will go into a Transient Queue; and be re-processed during registration.',
),
'subscr_gateway' => 'paypal',
'ccaps' => NULL,
'level' => '1',
'ip' => '',
)
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.31 MB :: Real Memory 20.25 MB :: Peak Memory 19.89 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_failed',
'subscr_id' => '',
'last_name' => '',
'residence_country' => 'US',
'item_name' => 'Members',
'payment_gross' => '17.99',
'mc_currency' => 'USD',
'business' => '',
'verify_sign' => '',
'payer_status' => 'unverified',
'payer_email' => '',
'first_name' => 'Michael',
'receiver_email' => '',
'payer_id' => '',
'retry_at' => '02:00:00 Dec 26, 2011 PST',
'item_number' => '1',
'mc_gross' => '17.99',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => '',
's2member_log' =>
array (
0 => 'IPN received on: Wed Dec 21, 2011 12:09:09 pm UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_failed|recurring_payment_failed|recurring_payment_skipped` ).',
4 => 'This `txn_type` does not require any action on the part of s2Member.',
5 => 's2Member does NOT respond to individual failed payments, only multiple consecutive failed payments.',
6 => 'When multiple consecutive payments fail, a special IPN response will be triggered.',
),
'subscr_gateway' => 'paypal',
)
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.63 MB :: Real Memory 20.25 MB :: Peak Memory 19.89 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_eot',
'subscr_id' => '',
'last_name' => '',
'residence_country' => 'US',
'item_name' => 'Members',
'mc_currency' => 'USD',
'business' => '',
'verify_sign' => '',
'payer_status' => 'verified',
'payer_email' => '',
'first_name' => 'jacob',
'receiver_email' => '',
'payer_id' => '',
'item_number' => '1',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => '',
's2member_log' =>
array (
0 => 'IPN received on: Wed Dec 21, 2011 12:11:24 pm UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Wed Dec 21, 2011 12:11:29 pm UTC. s2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
6 => 'Skipping ( demote|delete ) Member, for now. An Auto-EOT Time is already set for this account. When an Auto-EOT Time has been recorded, s2Member will handle EOT ( demote|delete ) events using it\'s own Auto-EOT System - internally.',
),
'subscr_gateway' => 'paypal',
'period1' => '0 D',
'period3' => '1 M',
'ip' => '',
)
Re: Subscriptions aren't expiring
Posted:
December 21st, 2011, 4:39 pm
by Raam Dev
Can you tell us what settings you have in WP Admin -> s2Member -> PayPal Options -> Automatic EOT Behavior?
Re: Subscriptions aren't expiring
Posted:
December 21st, 2011, 5:54 pm
by titanwebdesigns
I attached a screenshot of the settings.
Re: Subscriptions aren't expiring
Posted:
December 22nd, 2011, 3:17 pm
by Raam Dev
I noticed two things in the log file you shared that indicate an EOT is not affecting the account:
- Code: Select all
6 => 'Skipping ( demote|delete ) Member, for now. An Auto-EOT Time is already set for this account. When an Auto-EOT Time has been recorded, s2Member will handle EOT ( demote|delete ) events using it\'s own Auto-EOT System - internally.',
and
- Code: Select all
6 => 'Skipping this IPN response, for now. The Subscr. ID is not associated with a registered Member.',
So, that tells me that either 1) the EOT time has been manually set for the user on their profile (when you edit the user, you'll see a field for the EOT time) or 2) the user's account doesn't have the PayPal Subscriber ID associated with it (so when s2Member receives a cancellation message from PayPal, it doesn't know what account should be demoted/deleted).
If you have user accounts with manually set EOT times, can you tell me if those EOT times are old (i.e., more than a few days/weeks old)?
Also, have you tired manually changing the EOT time to something like 'today' on one of the accounts that should've been deleted and then checked to see if the account was deleted within 24 hours?
Re: Subscriptions aren't expiring
Posted:
December 22nd, 2011, 8:51 pm
by titanwebdesigns
I haven't manually added or edited any of the accounts. The accounts that are listed on the site were added by the s2member system when someone pays and subscribes.
Re: Subscriptions aren't expiring
Posted:
December 23rd, 2011, 9:06 am
by titanwebdesigns
I just noticed another account that should have expired 3 days ago according to paypal, but is still active on the site. I can't seem to find it listed in any of the logs, which leads me to believe that s2member hasn't attempted to do anything to the account.
Re: Subscriptions aren't expiring
Posted:
December 23rd, 2011, 1:53 pm
by Harty
Hi there.
Just a wild card thought...
Could it be that some accounts are not being demoted on expiration because these members didn't sign up through the s2m system in the first place?
Re: Subscriptions aren't expiring
Posted:
December 23rd, 2011, 2:26 pm
by Raam Dev
titanwebdesigns wrote:I just noticed another account that should have expired 3 days ago according to paypal, but is still active on the site. I can't seem to find it listed in any of the logs, which leads me to believe that s2member hasn't attempted to do anything to the account.
Can you search your logs for the Subscription ID linked to that account? (You can find what Subscription ID is linked to that account by editing the users profile and looking for
Paid Subscr. ID:.)
The only way s2Member will know the account should expire is if s2Member receives an IPN message from PayPal for the Subscription ID linked to that account. That IPN message is what notifies s2Member that the account should expire and that is what causes s2Member to set the EOT time.
If there is nothing in your log files that shows an IPN message in your logs from PayPal for that Subscription ID, or if the user who should've expired doesn't have a Subscription ID associated with it, then the account will not automatically expire (that is of course, unless you've manually set the EOT time, in which case it should expire no matter what on whatever date you set).
If you don't see an IPN message in your logs related to the subscription that should've expired, that would indicate that PayPal never notified s2Member about the expiring account (in which case please check your IPN integration in
WP Admin -> s2Member -> PayPal Options -> PayPal IPN Integration).
Re: Subscriptions aren't expiring
Posted:
December 24th, 2011, 10:09 am
by titanwebdesigns
Well the interesting part is that all of the users are associated with subscription IDs, which is how I know people are in fact signing up through the system. So as you said before, you would expect s2member to set EOT times for these users and the users to be removed at the end of their term, but that doesn't happen. I tried searching the logs for the subscription IDs that should have expired but they do not appear in the logs. So it leads me to believe that s2member isn't dealing with these accounts as it should.
As I've deactivated all the plugins that I can without damaging the functionality of the site and the problem's still occurring, it may be best for me to use another system.
Re: Subscriptions aren't expiring
Posted:
December 24th, 2011, 10:18 am
by Raam Dev
s2Member does not set the EOT times for the user automatically unless s2Member receives an IPN message from PayPal about the cancellation/expiration of a subscription.
If you don't see a expiration/cancellation IPN from PayPal for a subscriber in your logs, then s2Member will not have set the EOT (this is the correct behavior). This also points to a problem with PayPal not reporting these cancellations to s2Member (which is required for s2Member to set the EOT times).
Can you please double-check your PayPal IPN Integration in WP Admin -> s2Member -> PayPal Options -> PayPal IPN Integration and make sure all the settings are correct?
Re: Subscriptions aren't expiring
Posted:
December 24th, 2011, 10:55 am
by titanwebdesigns
What exactly should I be looking for? There are no fields for me to edit under IPN Integration and the URL listed on my site is the one I listed on Paypal.
Re: Subscriptions aren't expiring
Posted:
December 24th, 2011, 12:04 pm
by Raam Dev
Here is an example set of log entires from my personal
paypal-ipn.log file that shows PayPal reporting the user's payment failing (
'txn_type' => 'subscr_failed'), followed by their subscription being cancelled (
'txn_type' => 'subscr_cancel'), and then finally the PayPal notification of EOT (End of Term) (
'txn_type' => 'subscr_eot') which by that point had already been set by the previous IPN message (you'll see at the bottom of the second message, s2Member sets the EOT):
- Code: Select all
PHP v5.3.6 :: WordPress® v3.3 :: s2Member® v111206 :: s2Member® Pro v111206
Memory 22.62 MB :: Real Memory 23.50 MB :: Peak Memory 23.22 MB :: Real Peak Memory 23.50 MB
raamdev.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_failed',
'subscr_id' => 'S-5SF68942WU501942C',
'last_name' => 'Dev',
'option_selection1' => 'raamdev.com',
'option_selection2' => '64.134.231.0',
'residence_country' => 'US',
'payment_gross' => '7.00',
'mc_currency' => 'USD',
'item_name' => 'Raam\'s Journal ($7.00/month)',
'business' => 'raam@raamdev.com',
'verify_sign' => 'AGZIkHfGUVWjiHFPlACGUz5YShNEAYb-logZ6CP9.nzn1OwNaAO5Dbd1',
'payer_status' => 'unverified',
'payer_email' => 'xxxxxx@gmail.com',
'first_name' => 'jai',
'receiver_email' => 'raam@raamdev.com',
'payer_id' => '2SBZRYA3VNRVW',
'option_name1' => 'Originating Domain',
'invoice' => '4eb9a108bc266~64.134.234.1',
'option_name2' => 'Customer IP Address',
'retry_at' => '03:00:37 Dec 17, 2011 PST',
'item_number' => '1',
'mc_gross' => '7.00',
'custom' => 'raamdev.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => 'V-9PerlDAaDra2SI-4jEkw',
's2member_log' =>
array (
0 => 'IPN received on: Wed Dec 14, 2011 11:00:58 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_failed|recurring_payment_failed|recurring_payment_skipped` ).',
4 => 'This `txn_type` does not require any action on the part of s2Member.',
5 => 's2Member does NOT respond to individual failed payments, only multiple consecutive failed payments.',
6 => 'When multiple consecutive payments fail, a special IPN response will be triggered.',
),
'subscr_gateway' => 'paypal',
)
PHP v5.3.6 :: WordPress® v3.3 :: s2Member® v111220 :: s2Member® Pro v111220
Memory 22.87 MB :: Real Memory 23.50 MB :: Peak Memory 23.21 MB :: Real Peak Memory 23.50 MB
raamdev.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_cancel',
'subscr_id' => 'S-5SF68942WU501942B',
'last_name' => 'Dev',
'option_selection1' => 'raamdev.com',
'option_selection2' => '64.134.234.1',
'residence_country' => 'US',
'mc_currency' => 'USD',
'item_name' => 'Raam\'s Journal ($7.00/month)',
'business' => 'raam@raamdev.com',
'amount3' => '7.00',
'recurring' => '1',
'verify_sign' => 'AYGZyexs.2UUpNbKAX.gBGg1rvYKA1E9eppnjQWEZGjFtZB7BAht1Maw',
'payer_status' => 'unverified',
'payer_email' => 'xxxxxx@gmail.com',
'first_name' => 'jai',
'receiver_email' => 'raam@raamdev.com',
'payer_id' => '2SBZRYA3VNRVW',
'option_name1' => 'Originating Domain',
'invoice' => '4eb9a108bc266~64.134.234.1',
'option_name2' => 'Customer IP Address',
'reattempt' => '1',
'item_number' => '1',
'subscr_date' => '06:44:27 Dec 22, 2011 PST',
'custom' => 'raamdev.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'period3' => '1 M',
'mc_amount3' => '7.00',
'ipn_track_id' => 'CGX.4Qin6ahfXDJMyMnZQW',
's2member_log' =>
array (
0 => 'IPN received on: Thu Dec 22, 2011 2:44:48 pm UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_cancel|recurring_payment_profile_cancel` ).',
4 => 'Auto-EOT Time for this account: Fri Dec 16, 2011 12:20 am UTC',
),
'subscr_gateway' => 'paypal',
'period1' => '0 D',
'ccaps' => NULL,
'level' => '1',
'ip' => '75.68.96.254',
)
PHP v5.3.6 :: WordPress® v3.3 :: s2Member® v111220 :: s2Member® Pro v111220
Memory 22.95 MB :: Real Memory 23.50 MB :: Peak Memory 23.21 MB :: Real Peak Memory 23.50 MB
raamdev.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_eot',
'subscr_id' => 'S-5SF68942WU501942B',
'last_name' => 'Dev',
'option_selection1' => 'raamdev.com',
'option_selection2' => '64.134.234.1',
'residence_country' => 'US',
'mc_currency' => '',
'item_name' => 'Raam\'s Journal ($7.00/month)',
'business' => 'raam@raamdev.com',
'verify_sign' => 'ANXwdjuxJDi6a.hPcN3qEKbzpfYHAjTwKe20mnKCbvMN2QHAevrAGMqr',
'payer_status' => 'unverified',
'payer_email' => 'xxxxx@gmail.com',
'first_name' => 'jai',
'receiver_email' => 'raam@raamdev.com',
'payer_id' => '2SBZRYA3VNRVS',
'option_name1' => 'Originating Domain',
'invoice' => '4eb9a108bc266~64.134.234.1',
'option_name2' => 'Customer IP Address',
'item_number' => '1',
'custom' => 'raamdev.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => 'Ky9rbzb1uusW9Ezh1RtTeR',
's2member_log' =>
array (
0 => 'IPN received on: Thu Dec 22, 2011 2:50:55 pm UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Thu Dec 22, 2011 2:51:00 pm UTC. s2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
6 => 'Skipping ( demote|delete ) Member, for now. An Auto-EOT Time is already set for this account. When an Auto-EOT Time has been recorded, s2Member will handle EOT ( demote|delete ) events using it\'s own Auto-EOT System - internally.',
),
'subscr_gateway' => 'paypal',
'period1' => '0 D',
'period3' => '1 M',
'ip' => '75.68.96.252',
)
If you don't see any messages like these in your
paypal-ipn.log file (and you're certain you have logged enabled in
WP Admin -> s2Member -> PayPal Options -> PayPal Account Details -> Enable Logging Routines), then there is a problem with your PayPal IPN Integration.
Could you tell me, what kind of buttons are your members using to subscribe? Level Access buttons or BuyNow buttons? Could you share the button shortcode you're using?
Re: Subscriptions aren't expiring
Posted:
December 24th, 2011, 1:53 pm
by titanwebdesigns
Here's the shortcode for one of the buttons
- Code: Select all
[s2Member-PayPal-Button level="1" ccaps="" desc="Members" ps="paypal" cc="USD" ns="1" custom="www.aaronclarkmuscle.com" ta="0" tp="0" tt="D" ra="17.99" rp="1" rt="M" rr="1" image="default" /]
After looking at the code for your log that you shared, I took a look at mines. Here are a few entries that I think may help. I deleted the last names and email addresses from the log before posting the logs here.
- Code: Select all
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.46 MB :: Real Memory 20.25 MB :: Peak Memory 19.89 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_cancel',
'subscr_id' => 'I-A58G96HNC2Y4',
'last_name' => '',
'residence_country' => 'BE',
'mc_currency' => 'USD',
'item_name' => 'Members',
'business' => '',
'amount3' => '17.99',
'recurring' => '1',
'verify_sign' => 'ALw4hyV9kj4ji4-kKx9R-mO0bm0hAy0PxZ.Z6hjaKvv6sV8XWnkQKsmd',
'payer_status' => 'unverified',
'payer_email' => '',
'first_name' => 'Ivan',
'receiver_email' => '',
'payer_id' => 'A9DLXTU6TD96U',
'reattempt' => '1',
'item_number' => '1',
'subscr_date' => '08:18:59 Dec 21, 2011 PST',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'period3' => '1 M',
'mc_amount3' => '17.99',
'ipn_track_id' => 'bkLy-YAoG18hVodD5-FjrA',
's2member_log' =>
array (
0 => 'IPN received on: Wed Dec 21, 2011 4:19:17 pm UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_cancel|recurring_payment_profile_cancel` ).',
4 => 'Unable to handle Cancellation. Could not get the existing User ID from the DB.',
),
'subscr_gateway' => 'paypal',
'period1' => '0 D',
'ccaps' => NULL,
'level' => '1',
'ip' => '',
)
- Code: Select all
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.75 MB :: Real Memory 20.25 MB :: Peak Memory 19.92 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1&s2member_paypal_proxy=paypal&s2member_paypal_proxy_verification=b16738ca2243302f6280e7591608c4e8
User-Agent: WordPress/3.3; http://www.aaronclarkmuscle.com/private
array (
'txn_type' => 'subscr_eot',
'subscr_id' => 'I-BDU936TSTT8F',
'last_name' => '',
'option_selection1' => 'www.aaronclarkmuscle.com',
'option_selection2' => '86.158.138.139',
'item_name' => 'Members',
'payer_email' => '',
'first_name' => 'Paul',
'option_name1' => 'Originating Domain',
'invoice' => '4ef23e38d9cbf~86.158.138.139',
'option_name2' => 'Customer IP Address',
'item_number' => '1',
'custom' => 'www.aaronclarkmuscle.com',
'subscr_gateway' => 'paypal',
'proxy_verified' => 'paypal',
's2member_log' =>
array (
0 => 'IPN received on: Wed Dec 21, 2011 8:17:04 pm UTC',
1 => 's2Member POST vars verified with a Proxy Key',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Wed Dec 21, 2011 8:17:09 pm UTC. s2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
6 => 'Auto-EOT Time for this account ( delayed ), set to: Sat Jan 21, 2012 8:17 pm UTC',
),
'period1' => '0 D',
'period3' => '1 M',
'ip' => '86.158.138.139',
's2member_paypal_proxy' => 'paypal',
's2member_paypal_proxy_verification' => 'b16738ca2243302f6280e7591608c4e8',
)
- Code: Select all
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.55 MB :: Real Memory 20.25 MB :: Peak Memory 19.89 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_cancel',
'subscr_id' => 'I-W05WDL31R0T6',
'last_name' => '',
'residence_country' => 'US',
'mc_currency' => 'USD',
'item_name' => 'Members',
'business' => '',
'amount3' => '17.99',
'recurring' => '1',
'verify_sign' => 'Aqzdr6FeGlk.GC0liThPf1TMgrj8ARDZnFcUPatGs2ZDrm5ojeh5-.RS',
'payer_status' => 'verified',
'payer_email' => '',
'first_name' => 'william',
'receiver_email' => '',
'payer_id' => '6P2WQ2NJ75BPE',
'reattempt' => '1',
'item_number' => '1',
'payer_business_name' => 'hamsterdam',
'subscr_date' => '13:01:28 Dec 21, 2011 PST',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'period3' => '1 M',
'mc_amount3' => '17.99',
'ipn_track_id' => '3H0NdCBMve054EzVvF2gCQ',
's2member_log' =>
array (
0 => 'IPN received on: Wed Dec 21, 2011 9:01:34 pm UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_cancel|recurring_payment_profile_cancel` ).',
4 => 'Auto-EOT Time for this account: Sat Jan 21, 2012 5:15 pm UTC',
),
'subscr_gateway' => 'paypal',
'period1' => '0 D',
'ccaps' => NULL,
'level' => '1',
'ip' => '',
)
- Code: Select all
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.63 MB :: Real Memory 20.25 MB :: Peak Memory 19.89 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_eot',
'subscr_id' => 'I-FXMUBTUHF6XL',
'last_name' => '',
'residence_country' => 'IT',
'item_name' => 'Members',
'mc_currency' => 'USD',
'business' => '',
'verify_sign' => 'A.DdylXDZAeOcQPbztqMY48DyXc2A7Xmu2.UO-hcrWzbolOfZ9482k-Y',
'payer_status' => 'verified',
'payer_email' => '',
'first_name' => 'gill',
'receiver_email' => '',
'payer_id' => '6TFTDFXNYBGSL',
'item_number' => '1',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => 'fhT9-RdlUs31mfQ1kXRp2w',
's2member_log' =>
array (
0 => 'IPN received on: Sat Dec 24, 2011 11:40:15 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
4 => 'Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).',
5 => 'Awake. It\'s Sat Dec 24, 2011 11:40:20 am UTC. s2Member `txn_type` identified as ( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` ).',
6 => 'Skipping ( demote|delete ) Member, for now. An Auto-EOT Time is already set for this account. When an Auto-EOT Time has been recorded, s2Member will handle EOT ( demote|delete ) events using it\'s own Auto-EOT System - internally.',
),
'subscr_gateway' => 'paypal',
'period1' => '0 D',
'period3' => '1 M',
'ip' => '',
)
- Code: Select all
PHP v5.2.17 :: WordPress® v3.3 :: s2Member® v111206
Memory 19.30 MB :: Real Memory 20.25 MB :: Peak Memory 19.88 MB :: Real Peak Memory 20.25 MB
www.aaronclarkmuscle.com/private/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_failed',
'subscr_id' => 'I-YHK4617W4XNG',
'last_name' => '',
'residence_country' => 'ZA',
'item_name' => 'Members',
'payment_gross' => '17.99',
'mc_currency' => 'USD',
'business' => '',
'verify_sign' => 'Af20u5pykmF3mEYw7iJRQImb2tzoA52-4x9gMHycGZw1c2xj1GDzEyEs',
'payer_status' => 'unverified',
'payer_email' => '',
'first_name' => 'Thabo',
'receiver_email' => '',
'payer_id' => '5EDQUK3C8ZEX2',
'retry_at' => '02:00:00 Dec 29, 2011 PST',
'item_number' => '1',
'mc_gross' => '17.99',
'custom' => 'www.aaronclarkmuscle.com',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => 'fspkJZF08YNpIDdLv3PpIg',
's2member_log' =>
array (
0 => 'IPN received on: Sat Dec 24, 2011 11:40:28 am UTC',
1 => 's2Member POST vars verified through a POST back to PayPal®.',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 's2Member `txn_type` identified as ( `subscr_failed|recurring_payment_failed|recurring_payment_skipped` ).',
4 => 'This `txn_type` does not require any action on the part of s2Member.',
5 => 's2Member does NOT respond to individual failed payments, only multiple consecutive failed payments.',
6 => 'When multiple consecutive payments fail, a special IPN response will be triggered.',
),
'subscr_gateway' => 'paypal',
)
I'm not sure what that means exactly but I thought it might help to share.
Re: Subscriptions aren't expiring
Posted:
December 25th, 2011, 9:52 pm
by Raam Dev
Thank you for posting these additional log entires.
One of the log entires shows a 'txn_type' => 'subscr_eot' for 'subscr_id' => 'I-BDU936TSTT8F'.
It also shows that s2Member set an EOT for the related account (6 => 'Auto-EOT Time for this account ( delayed ), set to: Sat Jan 21, 2012 8:17 pm UTC'). That means the account will follow whatever rules you have set in WP Admin -> s2Member -> PayPal Options -> Automatic EOT Behavior on Sat Jan 21, 2012 8:17 pm UTC (noting will happen before that date).
The logs also show a 'txn_type' => 'subscr_cancel' for 'subscr_id' => 'I-W05WDL31R0T6'.
For the account associated with that Subscription ID, it shows s2Member setting an EOT time of Sat Jan 21, 2012 5:15 pm UTC (4 => 'Auto-EOT Time for this account: Sat Jan 21, 2012 5:15 pm UTC'). Again, on that date s2Member should follow whatever rules you have set up for the Automatic EOT Behavior.
Are these the EOT times you were expecting to see? As far as I can tell from these log entires, everything seems normal.
There was one log entry that showed something that might be related to your problem:
There is a 'txn_type' => 'subscr_cancel' for 'subscr_id' => 'I-A58G96HNC2Y4' that s2Member was unable to update the EOT time for because the user didn't exist (4 => 'Unable to handle Cancellation. Could not get the existing User ID from the DB.').
If you deleted the user account in WordPress before PayPal sent the cancellation IPN message, then that would explain this error.
Re: Subscriptions aren't expiring
Posted:
December 26th, 2011, 6:10 pm
by titanwebdesigns
The user account was deleted. Hmm, maybe disabling those plugins did the trick. I'll keep looking at the activity and if I see one that looks suspicious, I'll post it here.
Re: Subscriptions aren't expiring
Posted:
December 26th, 2011, 7:16 pm
by Raam Dev
Great! Thanks for the update. Please do let us know if you see one that looks suspicious.