Community Support Forums — WordPress® ( Users Helping Users ) — 2012-02-06T14:02:32-05:00 http://www.primothemes.com/forums/feed.php?f=4&t=6204 2012-02-06T14:02:32-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=62324#p62324 <![CDATA[Re: Members not degrading after failed payments]]> Thanks for the follow-up with these log entries.

I can see here what the issue is. s2Member is stopping on a failure to locate the item_number associated with the original transaction.

I suspect this is because your customer originally purchased access to your site while you were running an older version of s2Member. Unfortunately, this particular type of IPN that PayPal sends to s2Member, does not include the rp_invoice_id, or the PROFILEREFERENCE. This forces s2Member to keep a copy of this data locally, so it can reference this vital information and process the EOT.

s2Member started keeping this information locally, starting with version 110927. So if this particular customer signed up originally under a release prior, this could be the result. Unfortunately, there's not much we can do about this now. PayPal changed the rules on us a bit, and we had to adapt accordingly. Members that signed up in earlier versions of s2Member may fail to expire in certain circumstances. Yours being one of these. This issue affected certain types of transactions where the storage of IPN Signup Vars was required by s2Member in order to fulfill its obligation later on, in being able to properly terminate access upon receipt of this IPN from PayPal. Newer versions of s2Member resolve this issue.

If you have several members this is affecting, my suggestion would be a manual EOT Time through your Dashboard. In your Dashboard you can set the EOT Time for certain customers, and s2Member will be perfectly capable of processing EOTs at the times you set, regardless of this issue. Of course, for any customer that originally paid you under a release of s2Member v110927+, you won't need to do this.
Code:
  array (
    0 => 'IPN received on: Tue Jan 31, 2012 10:41:54 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
  ),
  'subscr_gateway' => 'paypal',
  'subscr_id' => 'I-NPR3...',
  'period1' => '0 D',
  'period3' => '1 D',
  'item_number' => false,
)

Statistics: Posted by Jason Caldwell — February 6th, 2012, 2:02 pm


]]>
2012-01-31T07:20:07-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=62001#p62001 <![CDATA[Re: Members not degrading after failed payments]]>
thank you for the tweaked code!

I put it up and we have some logs to debug already. I found this user with the same Paid Subscr. ID in Wordpress and he's not demoted.

paypal-ipn.log:
Code:
PHP v5.3.8 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 24.76 MB :: Real Memory 25.25 MB :: Peak Memory 24.95 MB :: Real Peak Memory 25.25 MB
http://www.....com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => '...',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '10:15:01 Jan 21, 2011 PST',
  'verify_sign' => 'A44EOaImnI.MwRNIZ36PF74Qu.zLAxe3E2dBM4wdijzy7Y7NjfKQiejA',
  'period_type' => 'Regular',
  'payer_status' => 'unverified',
  'tax' => '0.00',
  'payer_email' => '...@yahoo.com',
  'first_name' => 'Melony',
  'receiver_email' => 'info@....com',
  'payer_id' => 'NDXS...',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'custom' => 'www......com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '30.00',
  'outstanding_balance' => '30.00',
  'recurring_payment_id' => 'I-NPR3...',
  'product_name' => 'Member',
  'ipn_track_id' => '5a7384005b39e',
  's2member_log' =>
  array (
    0 => 'IPN received on: Tue Jan 31, 2012 10:41:54 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
    3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
  ),
  'subscr_gateway' => 'paypal',
)


paypal-eots.debug.log:
Code:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => '...',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '10:15:01 Jan 21, 2011 PST',
  'verify_sign' => 'A44EOaImnI.MwRNIZ36PF74Qu.zLAxe3E2dBM4wdijzy7Y7NjfKQiejA',
  'period_type' => 'Regular',
  'payer_status' => 'unverified',
  'tax' => '0.00',
  'payer_email' => '...@yahoo.com',
  'first_name' => 'Melony',
  'receiver_email' => 'info@....com',
  'payer_id' => 'NDXS...',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'custom' => 'www.....com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '30.00',
  'outstanding_balance' => '30.00',
  'recurring_payment_id' => 'I-NPR3...',
  'product_name' => 'Member',
  'ipn_track_id' => '5a7384005b39e',
  's2member_log' =>
  array (
    0 => 'IPN received on: Tue Jan 31, 2012 10:41:54 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
  ),
  'subscr_gateway' => 'paypal',
  'subscr_id' => 'I-NPR3...',
  'period1' => '0 D',
  'period3' => '1 D',
  'item_number' => false,
)


Thanks,
Martin

Statistics: Posted by foliovision — January 31st, 2012, 7:20 am


]]>
2012-01-30T16:28:50-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=61938#p61938 <![CDATA[Re: Members not degrading after failed payments]]> Thanks for the follow-up.

Hmm. Yes, it's possible that Users/Members who joined under an older version of s2Member are missing some information required in the latest copy. From your log entries, I'm not seeing what that is though. If these are matching up in your Dashboard to recurring_payment_id, I'm not sure where the hang up is yet. Let's make this our next step in debugging.

Please unzip and upload the attached file, allowing it override your existing copy of /s2member/includes/classes/paypal-notify-in-subscr-or-rp-eots-w-level.inc.php.

With this file in place, you'll have an additional log file here /s2member-logs/paypal-eots.debug.log. This log file will be generated in the same format, but with some additional details I can use to help you debug this further.

If this happens again, please send me the log entries from this file.paypal-notify-in-subscr-or-rp-eots-w-level.inc.php.zip

Statistics: Posted by Jason Caldwell — January 30th, 2012, 4:28 pm


]]>
2012-01-26T05:15:11-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=61603#p61603 <![CDATA[Re: Members not degrading after failed payments]]>
1. "So you confirmed that your failed log entry was also handled properly, because there was no match to the value of recurring_payment_id."

Sorry about misunderstanding, there is a match for the value of recurring_payment_id "I-C0...".

2. "Let's look now at your latest log entry..."

I searched list of Users in the Dashboard and found the one with "I-AMM...". So that's not the problem here.

Do you have any other debugging steps in mind?

Is there any way of turning some debugging on, which would allow us to simulate requests from PayPal like for example following? That could allow us to see what gets added into logs and trace the code.


http://site.com/?s2member_txn_type=recurring_payment_suspended_due_to_max_failed_payment&recurring_payment_id=I-AMM...


Both users were created with older version of the plugin (back in January 2011, the version of the plugin was even older than that). So perhaps they are missing something? What could it be?

Thanks,
Martin

Statistics: Posted by foliovision — January 26th, 2012, 5:15 am


]]>
2012-01-25T13:26:57-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=61548#p61548 <![CDATA[Re: Members not degrading after failed payments]]> Thanks Martin.

Not to worry. payer_status = unverified is definitely not the issue. s2Member does not even look at this value, as it's related solely to the payer's PayPal account, and not to their account at your site.

So you confirmed that your failed log entry was also handled properly, because there was no match to the value of recurring_payment_id. Thus, s2Member should not take any action.

Let's look now at your latest log entry...

Can you search your list of Users in the Dashboard and find an account associated with this?
'recurring_payment_id' => 'I-AMM....',

Statistics: Posted by Jason Caldwell — January 25th, 2012, 1:26 pm


]]>
2012-01-25T09:07:17-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=61529#p61529 <![CDATA[Re: Members not degrading after failed payments]]>
thank you for your investigation.

I checked the logs (the ones for the specific I-C0... subscriber ID are lost, but I can find other examples) and the subscriber ID in the log matches what's in Wordpress. I can also see two "subscr_failed" log entries for this subscriber ID received before "recurring_payment_suspended_due_to_max_failed_payment".

I'm attaching the log entry below. Notice 'payer_status' => 'unverified'.

Code:
PHP v5.3.8 :: WordPress® v3.3 :: s2Member® v111220
Memory 24.56 MB :: Real Memory 25.25 MB :: Peak Memory 24.77 MB :: Real Peak Memory 25.25 MB
www.example.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => 'H...',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '07:33:52 Jan 06, 2011 PST',
  'verify_sign' => 'A1vv6uzd5erU0sVxynr5DDKG1tL2AS1Kc2Vzs4.bZeaCZwVzpya1xNNY',
  'period_type' => 'Regular',
  'payer_status' => 'unverified',
  'tax' => '0.00',
  'payer_email' => 'n...@yahoo.com',
  'first_name' => 'Nicole',
  'receiver_email' => 'info@example.com',
  'payer_id' => '4XE2VRDVYPK3G',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'custom' => 'www.example.com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '30.00',
  'outstanding_balance' => '30.00',
  'recurring_payment_id' => 'I-AMM....',
  'product_name' => 'Member',
  'ipn_track_id' => 'i8j0PkeMv-kwt0ZSoh58ZQ',
  's2member_log' =>
  array (
    0 => 'IPN received on: Mon Jan 16, 2012 10:50:06 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal¬Æ.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
    3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
  ),
  'subscr_gateway' => 'paypal',
)


Thanks,
Martin

Statistics: Posted by foliovision — January 25th, 2012, 9:07 am


]]>
2012-01-24T23:21:37-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=61495#p61495 <![CDATA[Re: Members not degrading after failed payments]]> Investigation completed. Thanks for your patience.

In your log entries, #1 and #2 are handled properly.
Your last code sample was also handled properly.

However, in log entry number #3 for txn_type = recurring_payment_suspended_due_to_max_failed_payment, s2Member says:
Code:
Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.
This should actually say (i.e. what it actually indicates)...
Code:
s2Member was unable to match the details in this IPN to an existing account holder. The value of subscr_id could not be established.
So why is this the case? That's the question.

In log entry #3 that you posted, please check the value of this variable in your Dashboard.
Code:
'recurring_payment_id' => 'I-C0...',
Can you search your list of Users and find an account matching this Subscription ID? (aka: Recurring Profile ID, aka: Recurring Payment ID).

Statistics: Posted by Jason Caldwell — January 24th, 2012, 11:21 pm


]]>
2012-01-24T15:28:09-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=61437#p61437 <![CDATA[Re: Members not degrading after failed payments]]> Statistics: Posted by Jason Caldwell — January 24th, 2012, 3:28 pm


]]>
2012-01-24T04:50:02-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=61370#p61370 <![CDATA[Re: Members not degrading after failed payments]]>
I did another check of logs.

The demoting of suspended PayPal payments still does not work. Here is one of many examples, it's always like this

1. subscr_failed -> s2Member does NOT respond to individual failed payments, only multiple consecutive failed payments.
2. subscr_failed -> s2Member does NOT respond to individual failed payments, only multiple consecutive failed payments.
3. recurring_payment_suspended_due_to_max_failed_payment -> Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.

Could you please fix this finally? Read about details below:

I'm attaching the logs for each of above here:

1.
Code:
PHP v5.3.8 :: WordPress® v3.3 :: s2Member® v111206
Memory 24.16 MB :: Real Memory 25.25 MB :: Peak Memory 24.75 MB :: Real Peak Memory 25.25 MB
http://www.example.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
  'txn_type' => 'subscr_failed',
  'subscr_id' => 'I-C0...',
  'last_name' => '...',
  'residence_country' => 'US',
  'item_name' => 'Member',
  'payment_gross' => '30.00',
  'mc_currency' => 'USD',
  'business' => 'info@example.com',
  'verify_sign' => 'AUaxvSojqajxsiGA9qXfGuCulUctAi1buNKOlJUkMria7XqNpkaTEAn.',
  'payer_status' => 'unverified',
  'payer_email' => 'example@hotmail.com',
  'first_name' => 'Melanie',
  'receiver_email' => 'info@example.com',
  'payer_id' => '8M7...',
  'retry_at' => '02:00:00 Jan 15, 2012 PST',
  'item_number' => '1',
  'mc_gross' => '30.00',
  'custom' => 'www.example.com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'ipn_track_id' => 'Nc44E2a-KyUJ..m-mYCO8Q',
  's2member_log' =>
  array (
    0 => 'IPN received on: Tue Jan 10, 2012 10:48:02 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',
)


2.
Code:
PHP v5.3.8 :: WordPress® v3.3 :: s2Member® v111220
Memory 24.17 MB :: Real Memory 25.25 MB :: Peak Memory 24.76 MB :: Real Peak Memory 25.25 MB
http://www.example.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
  'txn_type' => 'subscr_failed',
  'subscr_id' => 'I-C0...',
  'last_name' => '...',
  'residence_country' => 'US',
  'item_name' => 'Member',
  'payment_gross' => '30.00',
  'mc_currency' => 'USD',
  'business' => 'info@example.com',
  'verify_sign' => 'Au9eEOhF6wGsCamlh6xFr1tIaPFbAB3zFDEkDSgJpwHZWfax1qNplWC2',
  'payer_status' => 'unverified',
  'payer_email' => 'example@hotmail.com',
  'first_name' => 'Melanie',
  'receiver_email' => 'info@example.com',
  'payer_id' => '8M7...',
  'retry_at' => '02:00:00 Jan 20, 2012 PST',
  'item_number' => '1',
  'mc_gross' => '30.00',
  'custom' => 'www.example.com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'ipn_track_id' => 't-j3cDTJELCZ3rwquRCJsA',
  's2member_log' =>
  array (
    0 => 'IPN received on: Sun Jan 15, 2012 10:42:57 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',
)


3.
Code:
PHP v5.3.8 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 24.70 MB :: Real Memory 25.25 MB :: Peak Memory 24.91 MB :: Real Peak Memory 25.25 MB
http://www.example.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => '...',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '13:17:55 Jan 10, 2011 PST',
  'verify_sign' => 'AmMSXMdhc1-bUdgXp-KBAPr1UYNkAoIfSiVLkb70MURN2047-nLmzpB3',
  'period_type' => 'Regular',
  'payer_status' => 'unverified',
  'tax' => '0.00',
  'payer_email' => 'example@hotmail.com',
  'first_name' => 'Melanie',
  'receiver_email' => 'info@example.com',
  'payer_id' => '8M7...',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'custom' => 'www.example.com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '30.00',
  'outstanding_balance' => '30.00',
  'recurring_payment_id' => 'I-C0...',
  'product_name' => 'Member',
  'ipn_track_id' => 'ta.f44oJ.1bazZubGVP-GA',
  's2member_log' =>
  array (
    0 => 'IPN received on: Fri Jan 20, 2012 10:42:04 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
    3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
  ),
  'subscr_gateway' => 'paypal',
)


I'll repeat my question from last time I contacted you about this:

I found that all of these users 'payer_status' => 'unverified' so you might need to add a proper handling to that. See above logs.

1. Is there any reason why your pluging should not demote users using PayPal subscriptions weher payer is not verified?

2. If there is, can you send us a piece of custom code which would fix this for us?

Here is one more example from the logs, this user was properly demoted:
Code:
PHP v5.3.8 :: WordPress® v3.2.1 :: s2Member® v111206
Memory 25.59 MB :: Real Memory 26.00 MB :: Peak Memory 25.66 MB :: Real Peak Memory 26.00 MB
http://www.example.com/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => '...',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '20:17:42 Dec 10, 2011 PST',
  'verify_sign' => 'A0uEaIiR68-zbTrTIDvzrysBqj-hADLx3JvK80HHMB6gpsoMv5xEQOZ3',
  'period_type' => 'Trial',
  'payer_status' => 'verified',
  'tax' => '0.00',
  'payer_email' => 'example@gmail.com',
  'first_name' => 'Michael',
  'receiver_email' => 'info@example.com',
  'payer_id' => 'X76PVRJ77QB44',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'custom' => 'www.example.com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '30.00',
  'outstanding_balance' => '30.00',
  'recurring_payment_id' => 'I-RY...',
  'product_name' => 'Member',
  'ipn_track_id' => 'MTQgXXjtCJ5Gu8zCJtP8vA',
  's2member_log' =>
  array (
    0 => 'IPN received on: Tue Dec 13, 2011 1:31:54 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 Tue Dec 13, 2011 1:32: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 => 'Member Level/Capabilities demoted to: Subscriber.',
  ),
  'subscr_gateway' => 'paypal',
  'subscr_id' => 'I-RY...',
  'period1' => '1 Y',
  'period3' => '1 Y',
  'item_number' => '1',
  'item_name' => 'Member',
  'ip' => '72.186.83.110',
)


Thanks,
Martin

Statistics: Posted by foliovision — January 24th, 2012, 4:50 am


]]>
2011-12-02T03:30:30-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=54377#p54377 <![CDATA[Re: Members not degrading after failed payments]]>
Jason Caldwell wrote:
Thanks for your patience.
Yes, this issue was fixed in the latest release.


FYI: Another related bug report can be found here, and still exists in s2Member v111105, but will be resolved in the next release. Until then, there are patch files available.
See: viewtopic.php?f=4&t=14876&start=25#p53674

Also, please see this latest post/patch: viewtopic.php?f=4&t=14876&start=25#p54361

Statistics: Posted by Jason Caldwell — December 2nd, 2011, 3:30 am


]]>
2011-12-01T03:17:25-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=54303#p54303 <![CDATA[Re: Members not degrading after failed payments]]>
these notifications are sent by PayPal when it fails to do recurring payment and the PayPal subscription for the subscriber gets suspended. So s2Member plugin shoud respect that.

I sent similar log reports to Jason before, he fixed something in the code, released a new version and our situation has improved. But there are still some suspended PayPal subscriptions which go unnoticed by s2Member.

I found that these users are labeled as "unverified" on PayPal, so you might need to add a proper handling to that. I believe that if somebody signs up for a yearly subscription with automatic renewal and his account is not fully verified on PayPal, the subscription should get cancelled in s2Member, as it gets suspended on PayPal.

Please let us know if there is something more to consider. Is there any reason why unverfied PayPal subscribers are not automatically demoted? Do we need to put in our own tweak for this? If so, can Jason send us the required code?

Thanks,
Martin

Statistics: Posted by foliovision — December 1st, 2011, 3:17 am


]]>
2011-12-01T00:21:59-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=54268#p54268 <![CDATA[Re: Members not degrading after failed payments]]>

'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',

Statistics: Posted by Cristián Lávaque — December 1st, 2011, 12:21 am


]]>
2011-11-28T13:33:23-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=54090#p54090 <![CDATA[Re: Members not degrading after failed payments]]>
it's still not perfect. Or there is something else. Could you please have a look at our logs?

This one is not demoted:
Code:
PHP v5.3.8 :: WordPress® v3.2.1 :: s2Member® v111105
Memory 24.90 MB :: Real Memory 25.50 MB :: Peak Memory 25.14 MB :: Real Peak Memory 25.50 MB
www.....com/?s2member_paypal_notify=1
User-Agent:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => '...',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '12:09:41 Nov 13, 2010 PST',
  'verify_sign' => '',
  'period_type' => 'Regular',
  'payer_status' => 'unverified',
  'tax' => '0.00',
  'payer_email' => '@.net',
  'first_name' => '...',
  'receiver_email' => 'info@.com',
  'payer_id' => '...',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'custom' => 'www.....com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '30.00',
  'outstanding_balance' => '30.00',
  'recurring_payment_id' => 'I-....',
  'product_name' => 'Member',
  'ipn_track_id' => '....',
  's2member_log' =>
  array (
    0 => 'IPN received on: Wed Nov 23, 2011 10:49:54 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
    3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
  ),
  'subscr_gateway' => 'paypal',
)

I can see that payer_status is "unverified" could that be it? I found a working example for this automatic degrading function and the user has "verified" in payer_status.

I see 3 more examples of this in our logs. Here's one more:
Code:
PHP v5.3.8 :: WordPress® v3.2.1 :: s2Member® v111105
Memory 25.07 MB :: Real Memory 26.00 MB :: Peak Memory 25.30 MB :: Real Peak Memory 26.00 MB
www.....com/?s2member_paypal_notify=1
User-Agent:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => '....',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '06:47:37 Nov 18, 2010 PST',
  'verify_sign' => '...',
  'period_type' => 'Regular',
  'payer_status' => 'unverified',
  'tax' => '0.00',
  'payer_email' => '...@.....com',
  'first_name' => '...',
  'receiver_email' => 'info@....com',
  'payer_id' => '...',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'custom' => 'www.....com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '30.00',
  'outstanding_balance' => '30.00',
  'recurring_payment_id' => 'I-....',
  'product_name' => 'Member',
  'ipn_track_id' => '..',
  's2member_log' =>
  array (
    0 => 'IPN received on: Mon Nov 28, 2011 11:02:16 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
    3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
  ),
  'subscr_gateway' => 'paypal',
)


My previous log entry I posted is also containing "unverified" user.

So it looks to me like you are not demoting unverified PayPal users. Please have a look into in and let us know if this is a bug, or if there is any reason for it.

Thanks,
Martin

Statistics: Posted by foliovision — November 28th, 2011, 1:33 pm


]]>
2011-11-22T12:22:30-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=53695#p53695 <![CDATA[Re: Members not degrading after failed payments]]>
I can't wait to see this finally working. I applied the quick fixes too. Thank you for the updates!

Martin

Statistics: Posted by foliovision — November 22nd, 2011, 12:22 pm


]]>
2011-11-22T11:56:30-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=53694#p53694 <![CDATA[Re: Members not degrading after failed payments]]> Thanks for your patience.
Yes, this issue was fixed in the latest release.


FYI: Another related bug report can be found here, and still exists in s2Member v111105, but will be resolved in the next release. Until then, there are patch files available.
See: viewtopic.php?f=4&t=14876&start=25#p53674

Statistics: Posted by Jason Caldwell — November 22nd, 2011, 11:56 am


]]>
2011-11-22T10:54:52-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=53693#p53693 <![CDATA[Re: Members not degrading after failed payments]]>
we just upgraded to latest version - 111105.

Was this fixed, or do we have to keep checking our s2Member IPN logs?

Thanks,
Martin

Statistics: Posted by foliovision — November 22nd, 2011, 10:54 am


]]>
2011-10-20T14:29:27-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=48391#p48391 <![CDATA[Re: Members not degrading after failed payments]]> Statistics: Posted by Jason Caldwell — October 20th, 2011, 2:29 pm


]]>
2011-10-20T06:44:30-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=48373#p48373 <![CDATA[Re: Members not degrading after failed payments]]>
when can we expect the new release? I'm asking, because we have to demote these suspended users by hand each time and we are getting some every day.

Thanks,
Martin

Statistics: Posted by foliovision — October 20th, 2011, 6:44 am


]]>
2011-10-19T21:36:24-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=48361#p48361 <![CDATA[Re: Members not degrading after failed payments]]> I've identified this bug, and we'll have it corrected in the next official release.

Statistics: Posted by Jason Caldwell — October 19th, 2011, 9:36 pm


]]>
2011-10-18T02:32:20-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=48246#p48246 <![CDATA[Re: Members not degrading after failed payments]]>
here it is:

Code:
WordPress® v3.2.1 :: s2Member® v111003
Memory 24.63 MB :: Real Memory 25.25 MB :: Peak Memory 24.95 MB :: Real Peak Memory 25.25 MB
some-site.com/member/content/wordpress/?s2member_paypal_notify=1
User-Agent:
array (
  'payment_cycle' => 'Yearly',
  'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
  'last_name' => '***',
  'next_payment_date' => 'N/A',
  'residence_country' => 'US',
  'initial_payment_amount' => '0.00',
  'currency_code' => 'USD',
  'time_created' => '14:25:06 Oct 06, 2010 PDT',
  'verify_sign' => '***',
  'period_type' => 'Regular',
  'payer_status' => 'unverified',
  'tax' => '0.00',
  'payer_email' => '***',
  'first_name' => '***',
  'receiver_email' => 'info@***',
  'payer_id' => 'ZV9SYXU29JXKE',
  'product_type' => '1',
  'shipping' => '0.00',
  'amount_per_cycle' => '30.00',
  'profile_status' => 'Suspended',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'amount' => '***',
  'outstanding_balance' => '***',
  'recurring_payment_id' => 'I-EU5***',
  'product_name' => 'Member',
  'ipn_track_id' => '***',
  's2member_log' =>
  array (
    0 => 'IPN received on: Sun Oct 16, 2011 3:24:46 pm UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
    3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
  ),
  'subscr_gateway' => 'paypal',
  'custom' => 'some-site.com',
)


1. I'm not sure where are the funny symbols behind "WordPress" or "PayPal" coming from.
2. The path some-site.com/member/content/wordpress/?s2member_paypal_notify=1 is also not valid anymore, Wordpress is now installed in /wordpress and not in /member/content/wordpress. But I assume it doesn't matter, since s2Member is able to log these requests. But I would still like to know where it is coming from.

Let me know if you need any other entries.

Thanks,
Martin

Statistics: Posted by foliovision — October 18th, 2011, 2:32 am


]]>
2011-10-17T17:25:24-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=48215#p48215 <![CDATA[Re: Members not degrading after failed payments]]> Thanks for reporting this important issue.
Perfect, we'll take a look at this for you. Can you please post the full log entry from this IPN?
Code:
'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
'recurring_payment_id' => *** (matching the subscr_id above),
's2member_log' =>
array (
0 => 'IPN received on: Sun Oct 16, 2011 3:24:46 pm UTC',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
),
* I just need to see all of the data s2Member was passed in this IPN, so we can see why s2Member bypassed this event on your installation.

Statistics: Posted by Jason Caldwell — October 17th, 2011, 5:25 pm


]]>
2011-10-17T02:50:41-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=46946#p46946 <![CDATA[Re: Members not degrading after failed payments]]>
Same problem here. Good thing is, that I have to logs. So let's have a look.

Membership on our site is based on yearly recurring payments. When a person fails to do these recurring payments and goes to "Suspended" in the PayPal, the respective account remains active in Wordpress.

Here are some logs from s2member-logs/paypal-ipn.log. I removed some of the fields which looked too sensivite or irrelevant:


'txn_type' => 'subscr_failed',
'subscr_id' => ***,
'time_created' => '14:25:06 Oct 06, 2010 PDT',
's2member_log' =>
array (
0 => 'IPN received on: Thu Oct 6, 2011 2:57:33 pm UTC',
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.',
),

'txn_type' => 'subscr_failed',
'subscr_id' => *** (matching the previous one),
's2member_log' =>
array (
0 => 'IPN received on: Tue Oct 11, 2011 2:50:12 pm UTC',
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.',
),

'txn_type' => 'recurring_payment_suspended_due_to_max_failed_payment',
'recurring_payment_id' => *** (matching the subscr_id above),
's2member_log' =>
array (
0 => 'IPN received on: Sun Oct 16, 2011 3:24:46 pm UTC',
2 => 's2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.',
3 => 'Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.',
),


I can see more users like this one.

Checking s2Member -> PayPal Options -> Automatic EOT Behavior


Enable s2Member's Auto-EOT System? -> Yes (enable the Auto-EOT System through WP-Cron)
Membership EOT Behavior ( demote or delete )? -> Demote (convert them to a Free Subscriber)
Refunds/Reversals ( trigger immediate EOT )? -> Refunds/Reversals (ALWAYS trigger an immediate EOT action)
Fixed-Term Extensions ( auto-extend )? -> Yes (default, automatically extend any existing EOT Time)


Plugin version is 111003. I can see new version is out, but change log deosn't say anything about these issues.

Could you have a look into this please? This way, we have to remote the users by hand, once we see them suspended in PayPal.

Thanks,
Martin

Statistics: Posted by foliovision — October 17th, 2011, 2:50 am


]]>
2011-04-27T02:51:01-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=13525#p13525 <![CDATA[Re: Members not degrading after failed payments]]> Thanks for reporting this important issue.

PayPal should be sending s2Member an IPN response with:
txn_type=recurring_payment_suspended_due_to_max_failed_payment

If s2Member is not behaving in the way you'd expect, let's start by having a look at your IPN logs. Please enable s2Member's Logging/Debugging routines from your Dashboard, under:
s2Member -> PayPal Options -> Account Details -> Logging/Debugging.

The next time this happens, please post a copy of your /s2member-logs/paypal-ipn.log file for review. Feel free to XXXX out any personally identifiable information.

Also, please state the version of WordPress, s2Member, and/or s2Member Pro that you're running at the time of this incident. We'll be happy to have a closer look at this for you.

Statistics: Posted by Jason Caldwell — April 27th, 2011, 2:51 am


]]>
2011-04-26T13:41:19-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=13462#p13462 <![CDATA[Re: Members not degrading after failed payments]]> Image

Statistics: Posted by ayoungren — April 26th, 2011, 1:41 pm


]]>
2011-04-26T13:28:47-05:00 http://www.primothemes.com/forums/viewtopic.php?t=6204&p=13456#p13456 <![CDATA[Re: Members not degrading after failed payments]]>

Could you tell me what your settings are here? WP Admin -> s2Member -> PayPal Options -> Automatic EOT Behavior

Statistics: Posted by Cristián Lávaque — April 26th, 2011, 1:28 pm


]]>