latest stable versions: v150827 (changelog)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

EOT NOT WORKING

Home Forums Community Forum EOT NOT WORKING

Tagged: 

This topic contains 14 replies, has 2 voices. Last updated by  Jason (Lead Developer) 4 years, 10 months ago.

Topic Author Topic
Posted: Thursday Feb 9th, 2012 at 1:58 am #4544
CN
Username: mcmoney

Copy pasting this because my last response went ignored, which is frustrating. I’m considering doing a chargeback as this software has done nothing but cause me problems.

Seriously, you guys need a real helpdesk that actually shows you read the tickets and has you respond to them.

EOT is not working with CCBill. I don’t know why. It goes all the way back to September. Members are still “S2 Member Level 1″ even though they canceled their account months ago. EOT is activated and set to demote members, but it does nothing. I QUADRUPLE checked all of my settings.

I’ve looked through the logs and can’t find any “errors” at first glance but either way have no idea what I’m looking for in the first place.

The only thing close to an error I can find is this:

array (
0 => ‘DataLink IPN processed on: Wed Jan 4, 2012 2:38:27 am UTC’,
1 => ‘Ignoring this DataLink IPN. No IPN signup vars for Subscr. ID: 0111338xxxxxx028940.’,
),
‘dl_ipn’ =>
array (
0 => ‘EXPIRE’,
1 => ’943039′,
2 => ’0004′,
3 => ’0111338701000028940′,
4 => ’2012-01-03′,
5 => ’2011-12-04′,
6 => ‘N’,
),
‘dl_ipn_signup_vars’ => false,

I replaced the IPN with x’s for privacy reasons.

What does that mean? If the system can’t verify if a member has paid or not under a payment processor account, they should be DELETE OR DEMOTED! What is wrong with this?

Lastly, the CCBill dl log shows “4 => ‘Error: Too many requests.’,” at times – not every time, but often – does s2member go back and do it again or what?

List Of Topic Replies

Viewing 14 replies - 1 through 14 (of 14 total)
Author Replies
Author Replies
Posted: Thursday Feb 9th, 2012 at 2:00 am #4545
CN
Username: mcmoney

I had to spend 4 hours copy/pasting back and forth with CCBill to manually demote over a 100 members who have gotten more than a free lunch. This is why I switched from other crappy membership plugins, and I’m finding S2member is just as crappy.

Posted: Thursday Feb 9th, 2012 at 2:11 am #4547
CN
Username: mcmoney

Wow, a customer from 2010 (via paypal through s2member) that’s been logging in every week was never demoted. I am seriously naive to think the product worked as advertised. What threw me off is that it works for “some” people that sign up. Out of every 3 customers it will probably demote 1 correctly.

Posted: Thursday Feb 9th, 2012 at 7:07 am #4587
Staff Member

Thanks for reporting this important issue.
~ Investigating now.

Posted: Thursday Feb 9th, 2012 at 7:44 am #4588
Staff Member

Initial investigation complete.

I’m sorry that a previous request went unanswered.
Can you please point me to your original forum thread, or post; so I can investigate that as well?

Regarding this log entry you posted…

array (
0 => ‘DataLink IPN processed on: Wed Jan 4, 2012 2:38:27 am UTC’,
1 => ‘Ignoring this DataLink IPN. No IPN signup vars for Subscr. ID: 0111338xxxxxx028940.’,
),
‘dl_ipn’ =>
array (
0 => ‘EXPIRE’,
1 => ’943039′,
2 => ’0004′,
3 => ’0111338701000028940′,
4 => ’2012-01-03′,
5 => ’2011-12-04′,
6 => ‘N’,
),
‘dl_ipn_signup_vars’ => false,

This indicates that s2Member was unable to locate a User/Member in your database matching the Paid Subscr. ID value of: 0111338701000028940. From your description, it sounds like this is happening to all of your existing members, which leads me to believe there is another underlying problem somewhere on your installation.

Let’s start debugging this please, by first verifying if this member’s account DOES actually have the required meta values in your database, so that s2Member would be able to properly handle this DataLink communication on your installation.

There are two ways to verify this:

1. You can log into your Dashboard and search your list of Users for this value:
0111338701000028940

2. Or, if you’d like to run a PHP code snippet somewhere, you could use the underlying s2Member method which appears to be failing on your installation, at least in the case of this Subscription.

<?php
if($ipn_signup_vars = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_vars(false, "0111338701000028940"))
	print_r($ipn_signup_vars);
else
	echo 'This Paid Subscr. ID was not found.';
?>

What does that mean? If the system can’t verify if a member has paid or not under a payment processor account, they should be DELETE OR DEMOTED! What is wrong with this?

s2Member is handling this properly, given the fact that it can’t locate an account in your database matching this Paid Subscr. ID value: 0111338701000028940

Why that is exactly, remains to be seen. But let’s take it one step at a time, until we determine through debugging why this particular transaction was not handled properly. If you’d like to send us a Dashboard login, we’ll run diagnostics for you.

Lastly, the CCBill dl log shows “4 => ‘Error: Too many requests.’,” at times – not every time, but often – does s2member go back and do it again or what?

This error can occur when/if s2Member attempts to connect to ccBill’s DataLink more than once within any 24 hour period. By default, s2Member will make an attempt to connect once per day, so it can avoid this error returned by the ccBill DataLink API.

That being said, I’ve seen this error come up on other client installations as well. It seems that ccBill’s DataLink API may not always allow access, depending upon server load on their side, and this generic error is returned. I’ve also seen it occur due to changes in server time, or because of DST being in affect. In either case, s2Member will try again the next day automatically, and s2Member will pick back up where it left off, so that nothing is missed from the day prior.

However, under extreme circumstances, this error CAN result in EOTs being missed. If ccBill continues to return this error on your installation, I would make an attempt to contact ccBill and ask why it’s happening over and over again. s2Member is only allowed to pull data from ccBill’s DataLink API for 1 day at a time. So if it misses two days completely, it could also miss EOTs that should have been processed for those days. This is a limitation in the ccBill DataLink API, which makes every effort to protect itself from being overloaded by incoming client requests.

Posted: Thursday Feb 9th, 2012 at 5:22 pm #4679
CN
Username: mcmoney

Hi,

First, I talked to CCBill, you can do datalink requests every hour.

S2member is doing them more than once an hour.

Here’s an example:

0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 5:09:11 pm UTC',
4 =&gt; 'Error: Too many requests.',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 5:38:19 pm UTC',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 5:48:19 pm UTC',
4 =&gt; 'Error: Too many requests.',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 5:58:29 pm UTC',
4 =&gt; 'Error: Too many requests.',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 6:58:21 pm UTC
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 7:08:20 pm UTC',
4 =&gt; 'Error: Too many requests.',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 7:18:23 pm UTC',
4 =&gt; 'Error: Too many requests.',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 7:28:36 pm UTC',
4 =&gt; 'Error: Too many requests.',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 8:18:41 pm UTC',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 8:58:58 pm UTC',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 9:48:23 pm UTC',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 10:28:25 pm UTC',
4 =&gt; 'Error: Too many requests.',
0 =&gt; 'Storing last DataLink time: Tue Jan 3, 2012 11:18:30 pm UTC',

This could easily be fixed by only running it once every 1 hour and 10 minutes or something. That way, you avoid the “too many requests” error which as of now, I think could be contributing to this problem.

Secondly, this is not happening to every one of my customers. “Some” people are demoted, which is what threw me off and took me so long to find this error.

s2Member is handling this properly, given the fact that it can’t locate an account in your database matching this Paid Subscr. ID value: 0111338701000028940

That specific customer was since deleted by me, but I manually demoted the others instead of deleting, for testing purposes. I looked up another log that said

“1 => ‘Ignoring this DataLink IPN. No IPN signup vars for Subscr. ID: 0111338xxxxxx028940.’,”

And then I looked up the customer number in my dashboard and the customer is there! In the dashboard!

  • This reply was modified 4 years, 11 months ago by  Eduan. Reason: Formatted a little, could cause confusion otherwise
Posted: Friday Feb 10th, 2012 at 12:49 am #4718
Staff Member

Regarding your original accusation.

Copy pasting this because my last response went ignored, which is frustrating. I’m considering doing a chargeback as this software has done nothing but cause me problems.

FYI: I just researched your previous post activity on our forums. I see that you’ve posted over 50 times in our forums and you’ve received responses numerous times, with well over 100 replies from myself and Support Reps such as Raam and Cristian. In fact, in many of your previous posts, you seemed quite satisfied with our support service.

You are: CN (aka: ChuckNorris, is this correct?)
See: http://www.primothemes.com/forums/search.php?author_id=551&sr=posts
See: http://www.primothemes.com/forums/viewtopic.php?f=4&t=15622&p=56202#p56202

I’d like you to address my previous question.
Please point me to the thread or forum post that went unanswered so that I may investigate that for you. If a request for support went unanswered, I need to identify where/when/why that occurred. The old forum system remains available in read-only mode, so you can look there if you need to. I took a quick look and found a couple of abandoned threads, but it looks like that was because we picked up with you in another thread which you posted shortly after.

First, I talked to CCBill, you can do datalink requests every hour.

Yes, I stand corrected. It seems this may have changed at some point. The document here clearly states that ccBill’s DataLink service can receive connections every 60 minutes.

Given the nature of this remote request to ccBill, we wouldn’t want to reconnect any more than we need to. Once each day is adequate for s2Member. A default installation of s2Member Pro will only make connections to the DataLink API once every 24 hours.

As seen here in the source code for s2Member.

/s2member-pro/includes/classes/separates/gateways/ccbill/ccbill-datalink.inc.php at line #72.

if (!($last = get_transient ("s2m_" . md5 ("s2member_pro_ccbill_last_datalink"))) || $last < (time () - 86400))
&#91;/hilite&#93;

The fact that you're seeing those repeated connections to ccBill would lead me to believe there is another underlying issue somewhere. Perhaps with another plugin or theme conflict which my be adversely affecting the &#91;hilite code&#93;get_transient()&#91;/hilite&#93; or &#91;hilite code&#93;set_transient()&#91;/hilite&#93; functions in WordPress.

Actually, your log shows that s2Member is attempting to re-connect every 10 minutes, which is the same schedule as the master WP-Cron Job. Which could mean, the WordPress functions &#91;hilite code&#93;get_transient()&#91;/hilite&#93; and &#91;hilite code&#93;set_transient()&#91;/hilite&#93; are not working properly on your installation, resulting in too many ccBill connections; because s2Member is unable to store the last time it ran the ccBill DataLink routine.

Have you been able to reproduce this problem on a clean installation of WordPress, with only s2Member active, and with the default theme for WordPress? If so, please send us a Dashboard login and we'll run diagnostics for you.

If you're running in a live environment with a custom theme, or with other 3rd party plugins, I would recommend that you disable any that might be in conflict with s2Member and see if this resolves the issues that you're having.

<strong>Another option:</strong> I'm attaching a debugging version of the DataLink handler that s2Member uses, which will log some additional details for us to review with you. If you'd like to unzip and upload this file to your installation of s2Member Pro v111220, please do. Allow this file to override your existing copy of /s2member-pro/includes/classes/separates/gateways/ccbill-datalink.inc.php

<a href="http://d1v41qemfjie0l.cloudfront.net/s2member/uploads/ccbill-datalink.inc_.php_.zip" rel="nofollow">http://d1v41qemfjie0l.cloudfront.net/s2member/uploads/ccbill-datalink.inc_.php_.zip</a>

If this happens again, please send us the log file located here:
/plugins/s2member-logs/s2-debug.log

“1 => ‘Ignoring this DataLink IPN. No IPN signup vars for Subscr. ID: 0111338xxxxxx028940.’,”

And then I looked up the customer number in my dashboard and the customer is there! In the dashboard!

Very good. So the Subscr ID. is there. Now, what about the IPN Signup Vars? Did you check your database to see if s2Member has the IPN Signup Vars for this User/Member? If you’re not sure how to check the database, you can use this method provided by s2Member.

<?php
if($ipn_signup_vars = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_vars(false, "0111338701000028940"))
	print_r($ipn_signup_vars);
else
	echo 'This Paid Subscr. ID was not found.';
?>

If you do check the database, what you’re looking for is the entry that s2Member stored in the wp_usermeta table with this meta_key “wp_s2member_ipn_signup_vars“.

Posted: Monday Feb 13th, 2012 at 1:53 am #4929
CN
Username: mcmoney

In fact, in many of your previous posts, you seemed quite satisfied with our support service.

I’d like you to address my previous question.
Please point me to the thread or forum post that went unanswered so that I may investigate that for you.

Here it is: http://www.s2member.com/forums/topic/eot-not-working/

I am happy with the support but please understand how unbelievably frustrating it is finding out months and months later that the software was not doing it’s job. It’s at least $1,000 down the drain. Of the 100 or so people I deleted, 4 of them signed up within a day of getting deleted, after getting 3 – 8 months free lunch. So if I seem snotty and frustrated, that’s why.

Have you been able to reproduce this problem on a clean installation of WordPress, with only s2Member active, and with the default theme for WordPress? If so, please send us a Dashboard login and we’ll run diagnostics for you.

No. I don’t know how I’m supposed to do that. Won’t I need a CCBill payment ID for someone or something? How exactly would I go about testing this on a clean install?

Allow this file to override your existing copy of /s2member-pro/includes/classes/separates/gateways/ccbill-datalink.inc.php

I believe the correct path was s2member-pro/includes/classes/gateways/ccbill/ccbill-datalink.inc.php – for future reference.

“If you do check the database, what you’re looking for is the entry that s2Member stored in the wp_usermeta table with this meta_key “wp_s2member_ipn_signup_vars“.”

I checked the database, searched by the CCBill ID, and this is what I found: 1 match:

http://www.imagebam.com/image/112e53174519785

It does not say “wp_s2member_ipn_signup_vars“ – it says “wp_s2member_subscr_id”. That was for a demoted customer at “Subscriber”. I searched for wp_s2member_ipn_signup_vars and found 127 matches, which is close to the 132 S2member 1 Level members I have.

Upon opening one of the ipn signup vars members, the meta value says this:

a:31:{s:8:"txn_type";s:13:"subscr_signup";s:9:"subscr_id";s:19:"xxxxx82701000014300";s:9:"recurring";s:5:"19.99";s:6:"txn_id";s:19:"xxxxx701000014300";s:6:"custom";s:15:"xxxxxxxx.com";s:7:"period1";s:4:"30 D";s:7:"period3";s:3:"1 M";s:10:"mc_amount1";s:5:"19.99";s:10:"mc_amount3";s:5:"19.99";s:8:"mc_gross";s:5:"19.99";s:11:"mc_currency";s:3:"USD";s:3:"tax";s:4:"0.00";s:11:"payer_email";s:19:"xxxxx@gmail.com";s:10:"first_name";s:7:"xxxxxx";s:9:"last_name";s:5:"xxxxx";s:12:"option_name1";s:18:"Originating Domain";s:17:"option_selection1";s:15:"xxxxxxxx.com";s:12:"option_name2";s:19:"Customer IP Address";s:17:"option_selection2";s:11:"xxxxxxxxx";s:11:"item_number";s:1:"1";s:9:"item_name";s:26:"xxxxxxxxx Instant Access";s:14:"proxy_verified";s:6:"ccbill";s:14:"subscr_gateway";s:6:"ccbill";s:6:"eotper";s:0:"";s:5:"ccaps";s:0:"";s:5:"level";s:1:"1";s:2:"ip";s:11:"xxxxxxxxx";s:12:"initial_term";s:4:"30 D";s:7:"initial";s:5:"19.99";s:7:"regular";s:5:"19.99";s:12:"regular_term";s:3:"1 M";}

I put xxx’s for privacy.

Posted: Tuesday Feb 14th, 2012 at 10:57 pm #5143
CN
Username: mcmoney

I sent the s2 debug log

Posted: Thursday Feb 16th, 2012 at 2:29 am #5320
Staff Member

Debug log received. Thank you.
~ Investigating.

Posted: Thursday Feb 16th, 2012 at 2:28 pm #5394
Staff Member

Thank you. OK, I’ve taken a look at your full reply and I’ve also investigated the results that you came up with from your database. It sounds like all of the data that s2Member needs is available in your database, but for some reason, which is yet to be determined, this data is unavailable to s2Member at runtime. At this point I have to assume this is a plugin conflict somewhere.

Here is why I’ve drawn this conclusion.

So far, I’ve been unable to reproduce it on a clean installation. We have many other site owners running s2Member together with ccBill. To my knowledge, this issue has never been reported before.

In the debug log that you ran for me, I find results like this:

Log1 (last): 
Log2 (last): 1329274603
Log3 (last): 1329274603
Log4 (last): 1329274603

This indicates that s2Member’s attempt to pull details from the database failed, through the core WordPress function get_transient(). The first line “Log1 (last)” should be filled with a timestamp value indicating the last time that s2Member’s ccBill DataLink processor ran. However, each time s2Member’s ccBill DataLink processor fires on your installation, it’s unable to collect this information, and so starting at Log2 (last), it must default to: the current time minus 24 hours (i.e. yesterday).

This is abnormal behavior, and between this odd occurrence, and the issues you’re reporting with IPN Signup Vars not being found either, through the get_user_option() function in WordPress, it leads me to believe there exists a plugin conflict on your installation which is affecting the return values of these core WordPress functions. Perhaps through Hooks/Filters implemented inadvertently (or at the wrong time) by another theme or plugin that you’re running.

s2Member’s inability to pull information that it expects to have available in the database is likely to result in the types of issues that you’re reporting. In fact, this is likely to produce all sorts of very strange behaviors, including many failed attempts to process one thing or another internally.

My suggestion would be to disable other plugins on your installation, and/or revert to the default theme for WordPress. You may also want to post a list of all the other plugins you’re running, so we can review those with you. It’s very difficult to debug things like this when there are many other plugins and/or a custom theme in the mix, but we’ll try to help you identify anything that might jump right out at us, as being something that would likely conflict with s2Member in a serious way.

Alternatively, you could setup a test site where you clone your existing site, minus all other plugins, and set your theme to the default theme for WordPress. However, please keep in mind that any plugin conflicts that have existed on your installation, could have also affected your existing database. So, at this point, cloning the site might not correct all of the issues either, if your underlying database has become corrupt in some way. From what I’ve seen so far, I don’t think that’s happened, but just to be aware of this possibility.

Here it is: http://www.s2member.com/forums/topic/eot-not-working/

Thank you very much. I’ve just finished investigating this as well. Totally our fault, and I’m very sorry for this. I’ve spoken to Cristian/Raam about this. It appears your ticket came into our new Customer Support Forum the day after the launch of this new site, and it was escalated to me. I overlooked your ticket and I’m very sorry about that.

I am happy with the support but please understand how unbelievably frustrating it is finding out months and months later that the software was not doing it’s job. It’s at least $1,000 down the drain. Of the 100 or so people I deleted, 4 of them signed up within a day of getting deleted, after getting 3 – 8 months free lunch. So if I seem snotty and frustrated, that’s why.

Yes, please know that we understand why you would be frustrated. However, there are some things beyond our control also. Let’s work together and find out what’s happening on your installation. If it’s something that can be corrected on our end, we’ll certainly make that happen.

At this point however, there appears to be some abnormal functionality on your end, which is something that really can’t plan for. Right now we’re trying to help you find the source of the underlying cause, which I suspect to be a plugin conflict.

As a next step, let’s take a look at your list of other plugins.
Also, which theme have you built your site on please?

Posted: Friday Feb 17th, 2012 at 1:25 am #5453
CN
Username: mcmoney

Hi,

Here’s the list of plugins:
http://www.imagebam.com/image/ffafa2175228317
http://www.imagebam.com/image/cce183175228315

I’ve disabled other plugins that I do not need. At the bottom of the second image I disabled Scheduled Posts MIA-s. That’s the only one that I can think of which runs a cron or something like that to make sure future posts aren’t “missed” and get published – had a big problem with future posts not posting so installed that. Anyways, it’s deactivated now.

I’ve used multiple themes. The problem is happening on all of them. “Pretty Theme” is one of them. http://wordpress.org/extend/themes/pretty-theme

Posted: Wednesday Feb 22nd, 2012 at 7:40 pm #6023
CN
Username: mcmoney

I see under EOT it gives me the option “Yes, but I’ll run with my own cron”. Can I have the instructions on doing this please?

Thank you

Posted: Thursday Feb 23rd, 2012 at 1:18 am #6054
Staff Member

Reviewing this support request.
~ Investigating.

Posted: Thursday Feb 23rd, 2012 at 2:57 am #6073
Staff Member

Sure. You’ll want to grab the CRON URL from your own Dashboard though. You can find that in your EOT Behavior options. Just choose that option from the list and a message will appear just above that field with the URL that’s required. Yours will look something like this:

http://www.example.com/?s2member_auto_eot_system_via_cron=1

Schedule the CRON job to run at least once each day please.

Dashboard -› s2Member® -› ccBill® Options -› Automatic EOT Behavior

Viewing 14 replies - 1 through 14 (of 14 total)

This topic is closed to new replies. Topics with no replies for 2 weeks are closed automatically.

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Contacting s2Member: Please use our Support Center for bug reports, pre-sale questions & technical assistance.