PriMoThemes — now s2Member® (official notice)

This is now a very OLD forum system. It's in READ-ONLY mode.
All community interaction now occurs at WP Sharks™. See: new forums @ WP Sharks™

EOT not working with Paypal

s2Member Plugin. A Membership plugin for WordPress®.

EOT not working with Paypal

Postby seb2point0 » January 11th, 2012, 2:47 pm

Hello,

I have S2Member installed and only taking PayPal payments. Everything seems to working fine except EOT is not working although I have set all the necessary parameters in my PayPal account.

It seems like I've done everything right. What are some steps that I can take to debug ? Is there a log I could look at ?

Thanks
User avatar
seb2point0
Registered User
Registered User
 
Posts: 3
Joined: January 11, 2012

Re: EOT not working with Paypal

Postby Raam Dev » January 12th, 2012, 8:08 pm

Hello,

You can enable logging in WP Admin -> s2Member -> PayPal Options -> PayPal Account Details -> Enable Logging Routines. The logs will definitely shed some light on any EOT issues you're having.

If you discover something in the logs that doesn't look right, please paste the relevant log entries here (using [code] tags), X-ing out any private information.
Raam Dev || Wherever you are, be there. || Please rate s2Member!
User avatar
Raam Dev
Developer
Developer
 
Posts: 810
Joined: October 26, 2011

Re: EOT not working with Paypal

Postby seb2point0 » January 13th, 2012, 1:32 am

Hello,

Thanks for your reply. Apparently I had already enabled logs a while back so I have plenty of data. Here is a log for a customer who paid for one month.

Code: Select all
PHP v5.2.17 :: WordPress® v3.2.1 :: s2Member® v111105
Memory 20.98 MB :: Real Memory 21.25 MB :: Peak Memory 21.04 MB :: Real Peak Memory 21.25 MB
mydomain.com/?s2member_paypal_return=1&s2member_paypal_return_tra=hash
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.3; SIMBAR={B16C7346-BC4E-11DF-96F4-891DCD57244C}; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.1; AskTB5.5)
array (
  'transaction_subject' => '1 month access',
  'payment_date' => '12:55:50 Dec 05, 2011 PST',
  'txn_type' => 'subscr_payment',
  'subscr_id' => 'ID',
  'last_name' => 'Lastname',
  'option_selection1' => 'mydomain.com',
  'option_selection2' => 'IP',
  'residence_country' => 'ES',
  'item_name' => '1 month access',
  'mc_currency' => 'EUR',
  'business' => 'my@email.com',
  'payment_type' => 'instant',
  'protection_eligibility' => 'Ineligible',
  'payer_status' => 'verified',
  'payer_email' => 'customer@hotmail.com',
  'txn_id' => 'ID',
  'receiver_email' => 'my@email.com',
  'first_name' => 'Firstname',
  'option_name1' => 'Originating Domain',
  'invoice' => 'ID',
  'payer_id' => 'ID',
  'option_name2' => 'Customer IP Address',
  'receiver_id' => 'ID',
  'item_number' => '1',
  'payment_status' => 'Completed',
  'mc_fee' => '0.90',
  'mc_gross' => '19.00',
  'custom' => 'mydomain.com',
  'charset' => 'windows-1252',
  's2member_log' =>
  array (
    0 => 'Return-Data received on: Mon Dec 5, 2011 8:56:06 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 => 'Transient Tracking Cookie set on ( `web_accept|subscr_signup|subscr_payment` ) w/o update vars.',
    7 => 'Redirecting Customer to Registration Page. They need to Register now.',
  ),
  'subscr_gateway' => 'paypal',
  'eotper' => NULL,
  'ccaps' => NULL,
  'level' => '1',
  'ip' => 'IP',
  'period1' => '0 D',
  'mc_amount1' => '0.00',
  'period3' => '1 M',
  'mc_amount3' => '19',
  'recurring' => '0',
  'initial_term' => '0 D',
  'initial' => '19',
  'regular' => '19',
  'regular_term' => '1 M',
  's2member_paypal_return_tra' => 'hash',
)


Just so I understand. Does PayPal send a notification at the EOT or does s2member preform end of term by itself using the information Paypal sends it in this return ? I imagine it is the latter.

Looking at this log, it seems like everything is being sent back correctly. As for the cron job I was using the WP-cron option but since it wasn't working I switched to real cron. Only problem : my host only allows actual PHP scripts to be executed on the server and not URL (therefore, no parameters). I had to create a php file on the server which I call up with cron which then calls the correct URL :

Code: Select all
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://mydomain.com/?s2member_auto_eot_system_via_cron=1/");
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);

curl_close($ch);
?>
User avatar
seb2point0
Registered User
Registered User
 
Posts: 3
Joined: January 11, 2012

Re: EOT not working with Paypal

Postby Raam Dev » January 13th, 2012, 7:31 pm

For subscriptions, PayPal will send an IPN message notifying s2Member of an EOT (due to cancellation, failed payment, etc.). The Automatic EOT Time field on the user's profile will remain blank until an IPN message from PayPal is received. (If you'd like to override this, you can manually enter an EOT time in that field to force the user's account to expire at a specific time.)

Your logs should show messages from PayPal about the cancellation/EOT. Do you not have those?
Raam Dev || Wherever you are, be there. || Please rate s2Member!
User avatar
Raam Dev
Developer
Developer
 
Posts: 810
Joined: October 26, 2011

Re: EOT not working with Paypal

Postby seb2point0 » January 14th, 2012, 3:29 am

Hello,

Yes I found and EOT ipn log

Code: Select all
PHP v5.2.17 :: WordPress® v3.2.1 :: s2Member® v111105
Memory 23.80 MB :: Real Memory 24.50 MB :: Peak Memory 24.06 MB :: Real Peak Memory 24.50 MB
mydomain.com/?s2member_paypal_notify=1
User-Agent:
array (
  'txn_type' => 'subscr_eot',
  'subscr_id' => 'I-6845PEKKNPMV',
  'last_name' => 'Lastname',
  'option_selection1' => 'mydomain.com',
  'option_selection2' => 'IP',
  'residence_country' => 'FR',
  'item_name' => 'Access for 24 hours',
  'mc_currency' => 'EUR',
  'business' => 'my@email.com',
  'verify_sign' => 'HASH',
  'payer_status' => 'unverified',
  'payer_email' => 'customer@email.com',
  'first_name' => 'Firstname',
  'receiver_email' => 'my@email.com',
  'option_name1' => 'Originating Domain',
  'payer_id' => 'ID',
  'invoice' => 'Invoice~IP',
  'option_name2' => 'Customer IP Address',
  'item_number' => '1',
  'custom' => 'mydomain.com',
  'charset' => 'windows-1252',
  'notify_version' => '3.4',
  'ipn_track_id' => 'HASH',
  's2member_log' =>
  array (
    0 => 'IPN received on: Sun Dec 11, 2011 9:20:20 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_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 Sun Dec 11, 2011 9:20:25 am 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 => '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' => 'IP',
)


Here is the subscriber in my WP-Admin http://twi.tl/041i0z1K38111B0h1Q3A although you can't see it, the account is still in a level 1 role (as are all my customers).

I am confused by :
Code: Select all
    6 => 'Skipping this IPN response, for now. The Subscr. ID is not associated with a registered Member.',
User avatar
seb2point0
Registered User
Registered User
 
Posts: 3
Joined: January 11, 2012

Re: EOT not working with Paypal

Postby Raam Dev » January 14th, 2012, 10:57 pm

That message is saying that when s2Member received the IPN message regarding the subscriber with Subscriber ID I-6845PEKKNPMV, s2Member couldn't find an s2Member account tied to that Subscription ID.

If you edit a user, you'll see at the bottom of their profile there are some extra fields added by s2Member. One of those fields is the Subscriber ID field. When the customer makes a purchase through s2Member, that field is automatically filled in by s2Member, thereby linking any IPN messages with that Subscriber ID to that specific user account in s2Member.

I can think of two scenarios where that field might not be properly filled in:

1) You manually added some of your users and didn't fill in their Subscription ID's

or

2) Your IPN Integration and/or PDT/Auto-Return Integration is not properly configured (see WP Admin -> s2Member -> PayPal Options)
Raam Dev || Wherever you are, be there. || Please rate s2Member!
User avatar
Raam Dev
Developer
Developer
 
Posts: 810
Joined: October 26, 2011


Return to s2Member Plugin

Who is online

Users browsing this forum: Google [Bot] and 3 guests

cron