S2 bug handling 2nd PayPal membership purchase
Posted: January 14th, 2012, 10:55 pm
I use S2Member to sign-up players for a Lacrosse league. The players are minors so their parents do the purchasing and membership registrations, however parents that purchase a membership for a SECOND child end up being rejected by S2Members from accessing the WordPress registration form.
It appears that the PayPal IPN handles the second membership purchase differently from the first. I do not know much about the PayPal IPN so I included the log file for review. Here is what I see when the first membership is purchased:
1) Paypal creates a "SUBSCRIBER ID" for the transaction.
2) PayPal reports the "option_selection1" as the "Custom String Value" which is the website domain
However, when the same PayPal user purchases a second membership at a later time, the PayPal IPN does an apparently unexpected thing:
1) Firstly, PayPal creates a new unique "SUBSCRIBER ID" for this new transaction, as expected.
2) Unexpectedly, PayPal reports the "option_selection1" as the First Transaction's "SUBSCRIBER ID" (not the website domain).
I speculate that the problem that S2Member has after such a sequence is that it rejects the second membership purchase and denies access to the WordPress registration form because it thinks PayPal is sending it the same member twice. I see this in my PayPal SUBSCRIBER DETAIL page when I look at that second purchase:
Notice that the "SUBSCRIBER ID" in the upper profile created line starts with "I-DS7" but lower down in the referencing customer ID line it starts with "I-FCW." This lower customer ID is exactly the "SUBSCRIBER ID" from the first membership purchase.
What is the SUBSCRIBER ID from the first membership purchase doing infiltrating into the second membership purchase? Does the "Option_Selection1" miss-match cause a problem for S2Member? Am I trying to use S2Member in a way that it was never designed to work, or is there a bug in the way PayPal reports IPN variables when one of its users tries to buy MULTIPLE membership subscriptions in succession? Can anyone see a work-around so I can get this to work?
A better review of things can be seen by reviewing the complete IPN log for one PayPal user making two membership purchases in successive order (one transaction at a time).
Currently, when a parent purchases a second membership, they receive no link to enter WordPress registration and do not get passed back to WordPress. They complain and I generate a REGISTRATION LINK using the manual S2Member button tool using their second PayPal "SUBSCRIBER ID." Their 2nd ID is still valid, its just that S2Member will not automatically generate the registration link.
Thanks for your interest in my problem...
It appears that the PayPal IPN handles the second membership purchase differently from the first. I do not know much about the PayPal IPN so I included the log file for review. Here is what I see when the first membership is purchased:
1) Paypal creates a "SUBSCRIBER ID" for the transaction.
2) PayPal reports the "option_selection1" as the "Custom String Value" which is the website domain
However, when the same PayPal user purchases a second membership at a later time, the PayPal IPN does an apparently unexpected thing:
1) Firstly, PayPal creates a new unique "SUBSCRIBER ID" for this new transaction, as expected.
2) Unexpectedly, PayPal reports the "option_selection1" as the First Transaction's "SUBSCRIBER ID" (not the website domain).
I speculate that the problem that S2Member has after such a sequence is that it rejects the second membership purchase and denies access to the WordPress registration form because it thinks PayPal is sending it the same member twice. I see this in my PayPal SUBSCRIBER DETAIL page when I look at that second purchase:
Notice that the "SUBSCRIBER ID" in the upper profile created line starts with "I-DS7" but lower down in the referencing customer ID line it starts with "I-FCW." This lower customer ID is exactly the "SUBSCRIBER ID" from the first membership purchase.
What is the SUBSCRIBER ID from the first membership purchase doing infiltrating into the second membership purchase? Does the "Option_Selection1" miss-match cause a problem for S2Member? Am I trying to use S2Member in a way that it was never designed to work, or is there a bug in the way PayPal reports IPN variables when one of its users tries to buy MULTIPLE membership subscriptions in succession? Can anyone see a work-around so I can get this to work?
A better review of things can be seen by reviewing the complete IPN log for one PayPal user making two membership purchases in successive order (one transaction at a time).
- Code: Select all
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 19.95 MB :: Real Memory 20.50 MB :: Peak Memory 20.05 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_signup',
'subscr_id' => 'I-FCWX6CVM6UPF',
'last_name' => 'Santom',
'option_selection1' => 'litchfieldlacrosse.org',
'option_selection2' => '75.67.230.120',
'residence_country' => 'US',
'mc_currency' => 'USD',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed, with early season discount',
'business' => 'lacrosse.litchfield@gmail.com',
'amount3' => '130.00',
'recurring' => '0',
'verify_sign' => 'AS3H5.01UdHCnoPKSqNCAxXXXXXXXXXuHY6E2YIWzboYfQ8GpRNuyKoK',
'payer_status' => 'verified',
'payer_email' => 'aXXXsantom@comcast.net',
'first_name' => 'Andrew',
'receiver_email' => 'lacrosse.litchfield@gmail.com',
'option_name1' => 'Originating Domain',
'payer_id' => 'KVKX73KG5QNBC',
'invoice' => '4f11c9f71006e~75.67.230.120',
'option_name2' => 'Customer IP Address',
'reattempt' => '1',
'item_number' => '2:clm_discount',
'subscr_date' => '10:32:06 Jan 14, 2012 PST',
'custom' => 'litchfieldlacrosse.org',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'period3' => '1 Y',
'mc_amount3' => '130.00',
'ipn_track_id' => 'FYgS5OxrTyx7KAPIKPVi4g',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:32:15 pm EST',
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: "Andrew Santom" <aXXXsantom@comcast.net>; Webmaster <webmaster@litchfieldlacrosse.org>; LLA Registration Services <registration-services@litchfieldlacrosse.org>.',
6 => 'Storing IPN signup vars into a Transient Queue. These will be processed on registration.',
),
'subscr_gateway' => 'paypal',
'eotper' => NULL,
'ccaps' => 'clm_discount',
'level' => '2',
'ip' => '75.67.230.120',
'period1' => '0 D',
'mc_amount1' => '0.00',
'initial_term' => '0 D',
'initial' => '130.00',
'regular' => '130.00',
'regular_term' => '1 Y',
)
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 19.52 MB :: Real Memory 20.50 MB :: Peak Memory 20.06 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1
User-Agent:
array (
'mc_gross' => '130.00',
'invoice' => '4f11c9f71006e~75.67.230.120',
'protection_eligibility' => 'Ineligible',
'payer_id' => 'KVKX73KG5QNBC',
'payment_date' => '10:32:08 Jan 14, 2012 PST',
'payment_status' => 'Completed',
'charset' => 'windows-1252',
'first_name' => 'Andrew',
'option_selection1' => 'litchfieldlacrosse.org',
'option_selection2' => '75.67.230.120',
'mc_fee' => '4.07',
'notify_version' => '3.4',
'subscr_id' => 'I-FCWX6CVM6UPF',
'custom' => 'litchfieldlacrosse.org',
'payer_status' => 'verified',
'business' => 'lacrosse.litchfield@gmail.com',
'verify_sign' => 'AiOKj7Mtjxo7AHvQYDWFuXXXXXXXXXhHCNj9d2y-u9rFAA6NCWf3MB6T',
'payer_email' => 'aXXXsantom@comcast.net',
'option_name1' => 'Originating Domain',
'option_name2' => 'Customer IP Address',
'txn_id' => '8NM233855K154743N',
'payment_type' => 'instant',
'last_name' => 'Santom',
'receiver_email' => 'lacrosse.litchfield@gmail.com',
'payment_fee' => '4.07',
'receiver_id' => '76KKNT2DMWWAW',
'txn_type' => 'subscr_payment',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed, with early season discount',
'mc_currency' => 'USD',
'item_number' => '2:clm_discount',
'residence_country' => 'US',
'transaction_subject' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed, with early season discount',
'payment_gross' => '130.00',
'ipn_track_id' => 'FYgS5OxrTyx7KAPIKPVi4g',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:32:28 pm EST',
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 Sat Jan 14, 2012 1:32:33 pm EST. 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' => 'clm_discount',
'level' => '2',
'ip' => '75.67.230.120',
)
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 19.76 MB :: Real Memory 20.50 MB :: Peak Memory 20.05 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_eot',
'subscr_id' => 'I-FCWX6CVM6UPF',
'last_name' => 'Santom',
'option_selection1' => 'litchfieldlacrosse.org',
'option_selection2' => '75.67.230.120',
'residence_country' => 'US',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed, with early season discount',
'mc_currency' => 'USD',
'business' => 'lacrosse.litchfield@gmail.com',
'verify_sign' => 'Aih4ILslNhIL2FQe0siXXXXXXXXXAsINqT0F3SOJ.dgh5PwuSFFwlIUa',
'payer_status' => 'verified',
'payer_email' => 'aXXXsantom@comcast.net',
'first_name' => 'Andrew',
'receiver_email' => 'lacrosse.litchfield@gmail.com',
'option_name1' => 'Originating Domain',
'payer_id' => 'KVKX73KG5QNBC',
'invoice' => '4f11c9f71006e~75.67.230.120',
'option_name2' => 'Customer IP Address',
'item_number' => '2:clm_discount',
'custom' => 'litchfieldlacrosse.org',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => 'FYgS5OxrTyx7KAPIKPVi4g',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:32:28 pm EST',
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 Jan 14, 2012 1:32:33 pm EST. 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 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',
'period1' => '0 D',
'period3' => '1 D',
'ip' => '75.67.230.120',
)
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 19.61 MB :: Real Memory 20.50 MB :: Peak Memory 20.10 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1&s2member_paypal_proxy=paypal&s2member_paypal_proxy_verification=425b97ed65d7680e7ad7cccf46741286
User-Agent: WordPress/3.3.1; http://litchfieldlacrosse.org/crosse
array (
'txn_type' => 'subscr_payment',
'mc_gross' => '130.00',
'invoice' => '4f11c9f71006e~75.67.230.120',
'first_name' => 'Andrew',
'option_selection1' => 'litchfieldlacrosse.org',
'option_selection2' => '75.67.230.120',
'subscr_id' => 'I-FCWX6CVM6UPF',
'custom' => 'litchfieldlacrosse.org',
'payer_email' => 'aXXXsantom@comcast.net',
'option_name1' => 'Originating Domain',
'option_name2' => 'Customer IP Address',
'txn_id' => '8NM233855K154743N',
'last_name' => 'Santom',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed, with early season discount',
'mc_currency' => 'USD',
'item_number' => '2:clm_discount',
'subscr_gateway' => 'paypal',
'proxy_verified' => 'paypal',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:36:24 pm EST',
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 Sat Jan 14, 2012 1:36:29 pm EST. s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
6 => 'Updated Payment Times for this Member.',
),
'ccaps' => 'clm_discount',
'level' => '2',
'ip' => '75.67.230.120',
's2member_paypal_proxy' => 'paypal',
's2member_paypal_proxy_verification' => '425b97ed65d7XXXXXad7cccf46741286',
)
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 19.91 MB :: Real Memory 20.50 MB :: Peak Memory 20.08 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1&s2member_paypal_proxy=paypal&s2member_paypal_proxy_verification=425b97ed65d7680e7ad7cccf46741286
User-Agent: WordPress/3.3.1; http://litchfieldlacrosse.org/crosse
array (
'txn_type' => 'subscr_eot',
'subscr_id' => 'I-FCWX6CVM6UPF',
'last_name' => 'Santom',
'option_selection1' => 'litchfieldlacrosse.org',
'option_selection2' => '75.67.230.120',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed, with early season discount',
'payer_email' => 'aXXXsantom@comcast.net',
'first_name' => 'Andrew',
'option_name1' => 'Originating Domain',
'invoice' => '4f11c9f71006e~75.67.230.120',
'option_name2' => 'Customer IP Address',
'item_number' => '2:clm_discount',
'custom' => 'litchfieldlacrosse.org',
'subscr_gateway' => 'paypal',
'proxy_verified' => 'paypal',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:36:30 pm EST',
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 Sat Jan 14, 2012 1:36:35 pm EST. 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: Mon Jan 14, 2013 1:36 pm EST',
),
'period1' => '0 D',
'period3' => '1 Y',
'ip' => '75.67.230.120',
's2member_paypal_proxy' => 'paypal',
's2member_paypal_proxy_verification' => '425b97ed65d76XXXXXad7cccf46741286',
)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SECOND MEMBERSHIP PURCHASE FROM SAME PAYPAL USER
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 19.88 MB :: Real Memory 20.50 MB :: Peak Memory 20.06 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_eot',
'subscr_id' => 'I-DS7R04YNFNFS',
'last_name' => 'Santom',
'option_selection1' => 'I-FCWX6CVM6UPF',
'option_selection2' => '75.67.230.120',
'residence_country' => 'US',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed with sibling discount',
'mc_currency' => 'USD',
'business' => 'lacrosse.litchfield@gmail.com',
'verify_sign' => 'An5ns1Kso7MWUdW4ErQKXXXXXXXXXvYlsZ1cCiAi3VM40Rmu-NivRuKg',
'payer_status' => 'verified',
'payer_email' => 'aXXXsantom@comcast.net',
'first_name' => 'Andrew',
'receiver_email' => 'lacrosse.litchfield@gmail.com',
'option_name1' => 'Referencing Customer ID',
'payer_id' => 'KVKX73KG5QNBC',
'invoice' => '4f11cb5408c50~75.67.230.120',
'option_name2' => 'Customer IP Address',
'item_number' => '2:clm_sibling',
'custom' => 'litchfieldlacrosse.org',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'ipn_track_id' => 'vT7JE0Iq0WFuv76AWZ39bg',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:37:55 pm EST',
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 Jan 14, 2012 1:38:00 pm EST. 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: Mon Jan 16, 2012 1:38 pm EST',
),
'subscr_gateway' => 'paypal',
'period1' => '0 D',
'period3' => '1 D',
'ip' => '75.67.230.120',
)
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 20.00 MB :: Real Memory 20.50 MB :: Peak Memory 20.05 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1
User-Agent:
array (
'txn_type' => 'subscr_signup',
'subscr_id' => 'I-DS7R04YNFNFS',
'last_name' => 'Santom',
'option_selection1' => 'I-FCWX6CVM6UPF',
'option_selection2' => '75.67.230.120',
'residence_country' => 'US',
'mc_currency' => 'USD',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed with sibling discount',
'business' => 'lacrosse.litchfield@gmail.com',
'amount3' => '115.00',
'recurring' => '0',
'verify_sign' => 'ApNQ6CROFetyU1nY0n3dh0MSXXXXXXXXXXvN2ypdlo3AXlZmFPeJjUPs',
'payer_status' => 'verified',
'payer_email' => 'aXXXsantom@comcast.net',
'first_name' => 'Andrew',
'receiver_email' => 'lacrosse.litchfield@gmail.com',
'option_name1' => 'Referencing Customer ID',
'payer_id' => 'KVKX73KG5QNBC',
'invoice' => '4f11cb5408c50~75.67.230.120',
'option_name2' => 'Customer IP Address',
'reattempt' => '1',
'item_number' => '2:clm_sibling',
'subscr_date' => '10:37:45 Jan 14, 2012 PST',
'custom' => 'litchfieldlacrosse.org',
'charset' => 'windows-1252',
'notify_version' => '3.4',
'period3' => '1 Y',
'mc_amount3' => '115.00',
'ipn_track_id' => 'vT7JE0Iq0WFuv76AWZ39bg',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:38:11 pm EST',
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/ update vars.',
5 => 's2Member Level/Capabilities updated w/ advanced update routines.',
6 => 'Modification Confirmation Email sent to Customer, with a URL that provides them with a way to log back in.',
7 => 'Storing IPN signup vars now. These are associated with a User\'s account record; for future reference.',
),
'subscr_gateway' => 'paypal',
'eotper' => NULL,
'ccaps' => 'clm_sibling',
'level' => '2',
'ip' => '75.67.230.120',
'period1' => '0 D',
'mc_amount1' => '0.00',
'initial_term' => '0 D',
'initial' => '115.00',
'regular' => '115.00',
'regular_term' => '1 Y',
)
PHP v5.3.6 :: WordPress® v3.3.1 :: s2Member® v111220
Memory 19.56 MB :: Real Memory 20.50 MB :: Peak Memory 20.06 MB :: Real Peak Memory 20.50 MB
litchfieldlacrosse.org/crosse/?s2member_paypal_notify=1
User-Agent:
array (
'mc_gross' => '115.00',
'invoice' => '4f11cb5408c50~75.67.230.120',
'protection_eligibility' => 'Ineligible',
'payer_id' => 'KVKX73KG5QNBC',
'payment_date' => '10:37:47 Jan 14, 2012 PST',
'payment_status' => 'Completed',
'charset' => 'windows-1252',
'first_name' => 'Andrew',
'option_selection1' => 'I-FCWX6CVM6UPF',
'option_selection2' => '75.67.230.120',
'mc_fee' => '3.64',
'notify_version' => '3.4',
'subscr_id' => 'I-DS7R04YNFNFS',
'custom' => 'litchfieldlacrosse.org',
'payer_status' => 'verified',
'business' => 'lacrosse.litchfield@gmail.com',
'verify_sign' => 'AEyYfF71ofz2KNaPtuea4KDXXXXXXXXXYq6LJPnfLKa2Im6gFPMmgFdP',
'payer_email' => 'aXXXsantom@comcast.net',
'option_name1' => 'Referencing Customer ID',
'option_name2' => 'Customer IP Address',
'txn_id' => '44L89121HN244523S',
'payment_type' => 'instant',
'last_name' => 'Santom',
'receiver_email' => 'lacrosse.litchfield@gmail.com',
'payment_fee' => '3.64',
'receiver_id' => '76KKNT2DMWWAW',
'txn_type' => 'subscr_payment',
'item_name' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed with sibling discount',
'mc_currency' => 'USD',
'item_number' => '2:clm_sibling',
'residence_country' => 'US',
'transaction_subject' => 'Competitive Lacrosse Membership 2012 -- no Jersey needed with sibling discount',
'payment_gross' => '115.00',
'ipn_track_id' => 'vT7JE0Iq0WFuv76AWZ39bg',
's2member_log' =>
array (
0 => 'IPN received on: Sat Jan 14, 2012 1:38:08 pm EST',
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 Sat Jan 14, 2012 1:38:13 pm EST. s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).',
6 => 'Updated Payment Times for this Member.',
),
'subscr_gateway' => 'paypal',
'ccaps' => 'clm_sibling',
'level' => '2',
'ip' => '75.67.230.120',
)
Currently, when a parent purchases a second membership, they receive no link to enter WordPress registration and do not get passed back to WordPress. They complain and I generate a REGISTRATION LINK using the manual S2Member button tool using their second PayPal "SUBSCRIBER ID." Their 2nd ID is still valid, its just that S2Member will not automatically generate the registration link.
Thanks for your interest in my problem...