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.

Incorrect string sent to CCBill DataLink

Home Forums Community Forum Incorrect string sent to CCBill DataLink

This topic contains 13 replies, has 3 voices. Last updated by  Jason (Lead Developer) 3 years, 6 months ago.

Topic Author Topic
Posted: Friday May 31st, 2013 at 8:58 am #51040

List Of Topic Replies

Viewing 13 replies - 1 through 13 (of 13 total)
Author Replies
Author Replies
Posted: Friday May 31st, 2013 at 9:39 pm #51095

Are you using the [hilite mono]sub_account[/hilite] attribute in your ccBill shortcode? [hilite path]Dashboard -› s2Member® -› ccBill® Buttons -› Shortcode Attributes -> sub_account[/hilite]

sub_account=”” Optional. This defaults to the ccBill® sub-account which you’ve configured s2Member® to use. However, if you are operating multiple ccBill® sub-accounts, this can be used to construct a payment button designed to integrate with a specific ccBill® sub-account (e.g. making it possible to integrate s2Member® with multiple ccBill® sub-accounts, all from a single s2Member® installation).

What does your s2Member log say about those transactions? If you want us to take a look at them, please submit your site’s info using the contact form and leave a reply here when you do. s2Member® » Private Contact Form

I’ll remove your credentials from the URLs in your post, since this forum is public.

Posted: Saturday Jun 1st, 2013 at 9:07 am #51130

Have submitted details via the contact form just now.

Posted: Tuesday Jun 4th, 2013 at 6:03 pm #51364

Thanks Lawrence, got the info. I reviewed the logs and see an error where I looked.

I also searched for a mention of the 0001 account but didn’t find one. Are you using the [hilite mono]sub_account[/hilite] attribute in your shortcode? See my previous reply regarding that.

Posted: Wednesday Jun 5th, 2013 at 9:17 pm #51440

Hi Cristián, thanks for taking a look.

The sites are hosted separately, but were using the same DataLink account to connect (944026-all). I was just wondering whether this is okay, or whether they may conflict and pull in each other’s data? In which case, I need to figure out why 944026-0000 and 944026-0001 aren’t doing their jobs.

Although it now seems that neither are working and that the password is displaying as xxxxxxxx instead (see ccbill-dl.log). The logs are very confusing to me at the moment.

I’m happy to privately provide my DataLink account credentials if this helps troubleshoot what’s going on.

Posted: Thursday Jun 6th, 2013 at 11:40 pm #51558

the password is displaying as xxxxxxxx instead

You mean in the logs? That’s just for the log, s2Member is using the actual credential you entered in the configuration. Or do you mean the URL you posted at the top of this thread? Where did you get that URL from?

If there are no errors in your log, the payment went through fine, the user got created with the paid access, it’d seem the ccBill credentials didn’t have issues.

The sites are hosted separately, but were using the same DataLink account to connect (944026-all). I was just wondering whether this is okay, or whether they may conflict and pull in each other’s data?

If they’re separate sites, I think it’s fine. In your ccBill configuration there’s a field for the subaccount s2Member uses by default. In one site you enter 0000 and in the other 0001. [hilite path]Dashboard -› s2Member® -› ccBill® Options -› Account Details -> Client Sub-Account ID[/hilite]

Posted: Friday Jun 7th, 2013 at 6:56 pm #51635

If there are no errors in your log, the payment went through fine, the user got created with the paid access, it’d seem the ccBill credentials didn’t have issues.

I think I’ve probably confused you a bit here. The CCBill IPN is working fine, it’s just the DataLink that isn’t.

From what I understand the IPN goes from CCBill › my site, whereas the DataLink goes from my site › CCBill. It works on a cron job that pulls in rebill and expiry information for the user accounts. Without it working properly, paid user accounts that have expired will just keep going.

Have you got an email address that I can send a commented log file to?

Posted: Tuesday Jun 11th, 2013 at 7:07 pm #51787

My other site which hasn’t been updated in ages (running s2Member Pro v120608) connects to DataLink with no problems.

The other two sites are running latest and both have passwords showing as xxxxxxxx in the URL string.

Could point towards it being an issue with the latest version?

Posted: Thursday Jun 13th, 2013 at 12:59 am #51845

My other site which hasn’t been updated in ages (running s2Member Pro v120608) connects to DataLink with no problems.

The other two sites are running latest and both have passwords showing as xxxxxxxx in the URL string.

Okay, so in the same URL, the v120608 installation shows the password, while the latest version shows xxxxxxxx, right?

the DataLink goes from my site › CCBill. It works on a cron job that pulls in rebill and expiry information for the user accounts. Without it working properly, paid user accounts that have expired will just keep going.

I was just wondering whether this is okay, or whether they may conflict and pull in each other’s data? In which case, I need to figure out why 944026-0000 and 944026-0001 aren’t doing their jobs.

Although it now seems that neither are working

Have you had subscriptions end and s2Member not setting an EOT time for these users? Could you tell me which they are to look for their log entries?

and that the password is displaying as xxxxxxxx instead (see ccbill-dl.log).

So you’re seeing that in the logs. Did you see the DataLink URL have the password x’ed out elsewhere or just in the logs? Have you asked ccBill if the URL s2Member is using for the DataLink has the correct password or it’s having authentication problems?

Have you got an email address that I can send a commented log file to?

You can use the contact form: s2Member® » Private Contact Form


I’ll ask Jason about this too, since he’s the one that knows the integration best.

Posted: Thursday Jun 13th, 2013 at 4:08 pm #51899

Okay, so in the same URL, the v120608 installation shows the password, while the latest version shows xxxxxxxx, right?

I’ve upgraded as far as v120703 and it’s all still working okay. Looking at the changelog, this is the last major release before major updates were made to the DataLink parts of s2Member.

Have you had subscriptions end and s2Member not setting an EOT time for these users? Could you tell me which they are to look for their log entries?

Yes, EOTs were not happening at all before. I’ve had to manually cancel those.

So you’re seeing that in the logs. Did you see the DataLink URL have the password x’ed out elsewhere or just in the logs? Have you asked ccBill if the URL s2Member is using for the DataLink has the correct password or it’s having authentication problems?

Just in the logs, as that’s the only place I can track them (as it’s a background process). It’s interesting, because it’s not reporting an error code 02 (authentication error) like before. I have a fully commented snippet of a log file that traces where things went wrong which I’ll send through to you.

Posted: Friday Jun 14th, 2013 at 6:27 am #51943

Thanks, got the email with the commented log file. I’ll forward it to Jason too.

Posted: Monday Jun 17th, 2013 at 5:41 am #52030
Staff Member

Thanks for the heads up on this thread :-)

There are two issues being reported in this thread.

1. Why do I see `xxxxxxx` in the log file?

The latest release of s2Member Pro will xxxxxx sensitive information out whenever possible. A password in the log file is NOT what was actually processed; it is what we saved in the log file after concealing sensitive information like passwords (when possible). Some information is NOT concealed, but we make an effort to prevent such things when we can. So this is not an error, it’s to be expected.

2. Why do some DataLink log entries contain &clientSubacc=0000 and some do not?

This is related to the version of s2Member Pro that was running during each occurrence. Some of the log entries you referenced were running different versions of s2Member Pro. In some previous releases of s2Member Pro, s2Member’s DataLink processor did NOT include &clientSubacc=0000; and this results in ALL sub-accounts being pulled in and processed by s2Member; regardless of sub-account ID. If we don’t send a sub-account ID, ccBill provides data for ALL of them.

In the latest release of s2Member Pro, we DO pass &clientSubacc=0000; and this value is set to whatever you configured under s2Member -› ccBill Options. It is always set to that value, regardless of what you put into the Shortcode attribute. We only run DataLink communication for the sub-account that is configured in the Dashboard as the primary sub-account that is being used on the site.

If you would like to revert back to pulling ALL data from ALL sub-accounts, please find this section of code.

See: /s2member-pro/includes/classes/gateways/ccbill/ccbill-datalink.inc.php at line #79.

"clientSubacc" => $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_ccbill_client_sid"]

Change that to:

"clientSubacc" => ""

and you will have the old behavior back again.

In either case, s2Member will ONLY process data it receives from ccBill which matches data it has stored within WordPress® (e.g. it only processes DataLink entries that are associated with transactions/subscriptions locally). Thus, you can have s2Member pull ALL data for all sub-accounts and this will even work across multiple installations of s2Member.

So why don’t we have it setup this way by default anymore?

The reason is because some ccBill accounts will NOT work properly w/o the &clientSubacc=0000 specification. In some cases we found that ccBill had to be contacted by each site owner to have the ALL sub-accounts functionality enabled. It would appear this has already been enabled on your account, because it was working in the past.

Posted: Monday Jun 17th, 2013 at 11:46 am #52037

Hi Jason,

Thanks for the detailed response, that clears it all up perfectly for me.

Just a couple more questions:

Firstly, I’ve changed all the above, and now I’m getting an error recorded at stage 1 (see below).

LOG ENTRY: Mon Jun 17th, 2013 @ precisely 3:21 pm UTC
PHP v5.3.23 :: WordPress® v3.5.1 :: s2Member® v130513 :: s2Member® Pro v130513
Memory 44.67 MB :: Real Memory 45.00 MB :: Peak Memory 44.76 MB :: Real Peak Memory 45.00 MB
example.com/wp-cron.php?doing_wp_cron=1371482513.7507560253143310546875
User-Agent: WordPress/3.5.1; http://example.com
array (
  's2member_log' => 
  array (
    0 => 'Storing last DataLink time: Mon Jun 17, 2013 9:11:55 am UTC',
    1 => 'Recording DataLink error at: Mon Jun 17, 2013 3:21:55 pm UTC',
    2 => 'Recording server IP address: 198.20.232.178',
    3 => 'https://datalink.ccbill.com/data/main.cgi?startTime=20130616091155&endTime=20130617091155&transactionTypes=REBILL%2CEXPIRE%2CREFUND%2CCHARGEBACK&clientAccnum=xxxxxx&username=xxxxxx&password=xxxxxxxx/pass

I’ve tested the same string from my browser by allowing my home IP address access from CCBill account admin, which works fine. This therefore suggests it’s a server problem.

Any ideas on obvious server problems/fixes?

Secondly, what does the /pass mean on the end of the string (password=xxxxxxxx/pass)?

Posted: Tuesday Jun 18th, 2013 at 1:05 am #52067
Staff Member

Thanks for the follow-up :-)

There should be another line that comes just below that entry. Can you please post the error message?

4 => 'Error: ?

Secondly, what does the /pass mean on the end of the string (password=xxxxxxxx/pass)?

That’s just a marker that s2Member injects to indicate it concealed what it found to be a password.

Viewing 13 replies - 1 through 13 (of 13 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.