Page 1 of 1

Level not set properly after returning from Paypal

PostPosted: October 17th, 2010, 2:53 pm
by mercure
Hello!

Thanks for this great plugin! it's a amazing piece of software!

I am using S2Member (free version 3.2.8) with BuddyPress 1.2.5 and WordPress 3.0.1. I am having an important issue that I noticed in 3.2.7 and 3.2.8.. I am in a test site with Paypal sandbox activated. I tested this before and it used to work with previous versions of S2Member. Maybe something got corrupted in the latest versions?

Here what I experience:
- A new user comes to my site without having an account
- He chooses to get a paid membership account right away
- He goes to Paypal and pays successfully
- He returns to my site and is asked to complete registration
- He completes registration
- User is created, and its Subcr. ID is stored correctly in WP admin BUT THE LEVEL IS NOT SET PROPERLY.
- User is still at the "subscriber" level.

The log array shows that the correct level has been passed from my site to Paypal and back again. I dunno where the problem is.

Code: Select all
array (
  'payment_date' => '12:38:40 Oct 17, 2010 PDT',
  'txn_type' => 'subscr_payment',
  'subscr_id' => 'I-8EYKE1VEND9J',
  'last_name' => 'User',
  'residence_country' => 'CA',
  'item_name' => 'Membre Allie - Ally Member',
  'mc_currency' => 'CAD',
  'business' => 'mo.oue_1278179508_biz@gmail.com',
  'payment_type' => 'instant',
  'protection_eligibility' => 'Ineligible',
  'payer_status' => 'unverified',
  'payer_email' => 'user_1287338652_per@gmail.com',
  'txn_id' => '3V096213PF155481E',
  'receiver_email' => 'mo.oue_1278179508_biz@gmail.com',
  'first_name' => 'Test',
  'payer_id' => '8CK4XEAWQD4YY',
  'receiver_id' => 'FK64BSWQB5NR4',
  'item_number' => '2',
  'payment_status' => 'Completed',
  'mc_fee' => '1.75',
  'mc_gross' => '50.00',
  'custom' => 'beta.alterheros.com',
  'charset' => 'windows-1252',
  's2member_log' =>
  array (
    0 => 'Return-Data received on: Sun Oct 17, 2010 7:38:50 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 (web_accept|subscr_signup|subscr_payment).',
    4 => 's2Member txn_type identified as (web_accept|subscr_signup|subscr_payment) w/o update vars.',
    5 => 'Registration Cookies set on (web_accept|subscr_signup|subscr_payment) w/o update vars.',
    6 => 'Redirecting Customer to Registration Page. They need to Register now.',
  ),
  'eotper' => NULL,
  'ccaps' => NULL,
  'level' => '2',
)


What can I do?
Thanks anyone for your help! I can't go live before I fix this.

Marc-Olivier

Re: Level not set properly after returning from Paypal

PostPosted: October 23rd, 2010, 4:46 am
by Jason Caldwell
Hi there. Thanks for reporting this important issue.

Did you recently change your Security Encryption Key for s2Member? If so, that could cause this problem. Otherwise, you've got us stumped; as we've been unable to reproduce the bug. If you'd like us to investigate, please submit a Dashboard login and FTP login details privately at s2Member.com. I'll have a look for you. http://www.s2member.com/contact/

Re: Level not set properly after returning from Paypal

PostPosted: October 23rd, 2010, 12:34 pm
by scalwell
Having Exactly the same issue here, same success call from PayPal, and have not recently changed security key.. Jason, sent you some logs via /contact which may help...trying to weed through it.

Re: Level not set properly after returning from Paypal

PostPosted: October 23rd, 2010, 5:59 pm
by Jason Caldwell
scalwell wrote:Having Exactly the same issue here, same success call from PayPal, and have not recently changed security key.. Jason, sent you some logs via /contact which may help...trying to weed through it.

Thanks. I got your log files. Can you also post a copy of the Button Code that you're using? ~ Thanks.

Re: Level not set properly after returning from Paypal

PostPosted: October 23rd, 2010, 6:35 pm
by Jason Caldwell
Investigating now. I was able to reproduce this on a Multisite Network installation with Blog Farm mode enabled. We're looking into a fix for the issue now.

Re: Level not set properly after returning from Paypal

PostPosted: October 23rd, 2010, 7:19 pm
by Jason Caldwell
Investigation completed. Thanks for your patience.

OK. I was able to reproduce this, where PayPal's PDT system returns an empty &item_number= field as indicated by your logs. This bug was been reported to PayPal several times:
https://www.x.com/search.jspa?container ... abled=true

Now, that being said... This minor issue does NOT affect s2Member in any way, because s2Member only uses the "tx" variable passed through PayPal's PDT return. The "tx" value is ALWAYS present, and this allows s2Member to retrieve a full set of details directly from PayPal, including the item_number field.

I've run several tests against Sandbox and live accounts and I've been unable to reproduce the s2Member bug that's being reported here. s2Member seems to deal with the Level number updates with good consistency across both dedicated and Multisite installations.

If one of you can please provide us with a Dashboard access, we'll be happy to have a look for you.

Status: Pending a deeper investigation when/if access to a reproducible installation can be provided. Please use: http://www.s2member.com/contact/

Re: Level not set properly after returning from Paypal

PostPosted: October 27th, 2010, 1:04 am
by Jason Caldwell
Investigation re-opened.
Thanks for the info via email Shawn, aka: "scalwell".

I was able to reproduce this bug on your installation. I believe the bug exists only on a Multisite Blog Farm integration such as yours. An investigation has been re-opened on this issue. Since this bug appears to be rather complex, and could have negative implications on other uses of s2Member; it will most likely be several days before an official bug fix is established and fully tested.

This thread will be updated once the issue is resolved.

@C/TODO :: fix possible bug in the way s2Member integrates with BuddyPress
( specifically on a Multisite Blog Farm integration, with BuddyPress. )

Re: Level not set properly after returning from Paypal

PostPosted: October 27th, 2010, 1:07 am
by Jason Caldwell
Request: I noticed that you're running outdated versions of WordPress® and s2Member both. Please upgrade to the latest versions of WordPress® ( 3.0.1+ ) and s2Member v3.2.9+.

I don't think these upgrades will have any impact on the issue being discussed here. Still, it would be good to have additional outside feedback on this topic, with the latest available version of WordPress®, BuddyPress, and s2Member.

Re: Level not set properly after returning from Paypal

PostPosted: October 27th, 2010, 3:05 pm
by scalwell
Thanks alot Jason. I have upgrades scheduled for tomorrow. and will post here when complete. I appreciate all your help.

Re: Level not set properly after returning from Paypal

PostPosted: October 28th, 2010, 3:08 pm
by scalwell
Jason Caldwell wrote:Request: I noticed that you're running outdated versions of WordPress® and s2Member both. Please upgrade to the latest versions of WordPress® ( 3.0.1+ ) and s2Member v3.2.9+


Hi Jason,
Both have been updated, as well as BuddyPress. Thank you very much.
Shaun

Re: Level not set properly after returning from Paypal

PostPosted: November 1st, 2010, 10:31 pm
by Jason Caldwell
@COMPLETED/TODO :: fix possible bug in the way s2Member integrates with BuddyPress
( specifically on a Multisite Blog Farm integration, with BuddyPress. )


Thanks to everyone who reported this bug. The bug has been identified and corrected in the latest development release of s2Member v3.2.9 build #35. I'm attaching a copy to this post so that those of you who reported the bug will have immediate access to a working version.

If all goes well, you can look for the bug fixes to be released officially with s2Member v3.3.

s2member.zip
(5.49 MiB) Downloaded 11 times
s2Member v3.2.9 build #35

Bug fix. New filter added in support of BuddyPress on a Multisite installation.
add_filter ("bp_signup_usermeta", "ws_plugin__s2member_ms_process_signup_meta");

Bug fix. Improved detection of BuddyPress activation/registration slugs using BP_ACTIVATION_SLUG, BP_REGISTER_SLUG in conjunction with improved routing of $usermeta data inside /s2member/includes/functions/config-user-registration.inc.php. This resolves an issue where s2Member was not properly applying Membership Levels ( e.g. an s2 Role ) with BuddyPress installed on a Multisite Network.

Re: Level not set properly after returning from Paypal

PostPosted: November 4th, 2010, 2:02 pm
by scalwell
Hi Jason,
Definitely some progress, its working great with a S2member Level1 transaction (whereas before it was setting them as subscriber.

However when I tested with a Level 2, it activated the user as Level 1 also..

The credentials I send you before are still valid, the users name was "nobody" and I will send the IPN from paypal to you in the contact form, in case that helps. I did see that the IPN contained the level 2 value.

Thanks alot for any input on this.
Shaun

Re: Level not set properly after returning from Paypal

PostPosted: November 5th, 2010, 9:24 am
by Jason Caldwell
Hi Shaun. Thanks for the follow-up.

Please run some tests on the latest build and let me know how it goes.
s2member.zip
(5.49 MiB) Downloaded 22 times
s2Member v3.2.9 build #38