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.

About: Santosh Ramachandran

Sorry, I've not written a description yet. I'll get to it soon!


Topics I'm Subscribed To

Viewing topic 1 (of 1 total)
Topic Count Last Reply
S2 Member – Warrior Plus – Integration

By:  Santosh Ramachandran in: Community Forum

voices: 3
replies: 11

4 years, 4 months ago  Jason (Lead Developer)

Viewing topic 1 (of 1 total)

Topics I've Started

Viewing topic 1 (of 1 total)
Topic Count Last Reply
S2 Member – Warrior Plus – Integration

By:  Santosh Ramachandran in: Community Forum

voices: 3
replies: 11

4 years, 4 months ago  Jason (Lead Developer)

Viewing topic 1 (of 1 total)

My Latest Replies (From Various Topics)

Viewing 5 replies - 1 through 5 (of 5 total)
Author Replies
Author Replies
Posted: Thursday Aug 23rd, 2012 at 8:21 am #22850

Hi Critistian,

Thanks for the support, ya it would be great if Jason could help!!!

Also if you provide me with a good sample message that S2 member expects the IPN to be in, I could look into the IPN script and try to make any changes required to get it to work.

Best Regards,
Santosh

Posted: Tuesday Aug 21st, 2012 at 10:42 am #22655

Hello Crisitan,

Following is the copy paste of the server check tool (all the tests passed):

———————————————————————————
Server Scan By: s2Member®
Test Email Functionality?
No issues. Your server configuration looks great!
Pass[PASS] PHP Version
You are currently running PHP 5.2.17. Minimum required version is: 5.2
Pass[PASS] WordPress® Version
You are currently running WordPress® 3.4.1. Minimum required version is: 3.2
Pass[PASS] Multibyte String Extension
The mbstring extension is installed. Your server supports UTF-8 character conversion.
Pass[PASS] ZLib Extension (GZIP)
The zlib extension is installed. Your server supports GZIP compression.
Pass[PASS] Default Hash Extension
The Hash extension is installed. Comes with every installation of PHP. Your server supports message digests.
Pass[PASS] Default XML Parser Extension
The XML Parser extension is installed. Comes with every installation of PHP. Your server supports XML parsing.
Pass[PASS] Default libXML Extension
The libXML extension is installed. Comes with every installation of PHP. Your server supports this important dependency.
Pass[PASS] Default Simple XML Extension
The Simple XML extension is installed. Comes with every installation of PHP. Your server can convert XML into PHP objects.
Pass[PASS] Default XML Reader Extension
The XML Reader extension is installed. Comes with every installation of PHP. Your server has the ability to read XML documents.
Pass[PASS] Default XML Writer Extension
The XML Writer extension is installed. Comes with every installation of PHP. Your server has the ability to write XML documents.
Pass[PASS] Default DOM Extension
The DOM extension is installed. Comes with every installation of PHP. Your server supports XML document traversal.
Pass[PASS] Default Sessions Extension
The Sessions extension is installed. Comes with every installation of PHP. Your server allows read/write access to session data.
Pass[PASS] MySQL Database Extension
The MySQL extension is installed. Your server supports MySQL database communication.
Pass[PASS] Mcrypt/Encryption Extension
The Mcrypt extension is installed. Your server supports advanced data encryption.
Pass[PASS] Default JSON Extension
The JSON extension is installed. Comes with every installation of PHP. Your server supports JavaScript object notation.
Pass[PASS] GD Image Extension (JPEG/PNG/FreeType)
The GD Image extension is installed. Your server supports dynamic image creation.
Pass[PASS] Default Fileinfo Extension
The Fileinfo extension is installed. Comes with every installation of PHP 5.3+. Your server supports MIME type detection.
Pass[PASS] Default Ctype Extension
The Ctype extension is installed. Comes with every installation of PHP. Your server supports character class detection.
Pass[PASS] PHP eval() Function
The eval() function is available.
Pass[PASS] PHP ini_get() Function
The ini_get() function is available.
Pass[PASS] cURL Extension With SSL Support
The cURL extension for remote communication via PHP is available (and the OpenSSL extension for PHP is enabled).
Pass[PASS] INI fopen() URL With SSL Support
The setting allow_url_fopen is on in your php.ini file (and the OpenSSL extension for PHP is enabled).
Pass[PASS] OpenSSL Extension With openssl_sign()
The OpenSSL extension is installed, and PHP function openssl_sign() is available.
Pass[PASS] Temporary Files Directory
A readable/writable temporary files directory was found here: /tmp
Pass[PASS] $_SERVER[‘DOCUMENT_ROOT’]
Your server reports this value: /home/wpskills/public_html
Pass[PASS] $_SERVER[‘HTTP_HOST’]
Your server reports this value: http://www.wpskillset.com
Pass[PASS] $_SERVER[‘REQUEST_URI’]
Your server reports this value: /s2member-server-check.php
Pass[PASS] $_SERVER[‘REMOTE_ADDR’]
Your server reports this value: 59.163.21.131
Pass[PASS] $_SERVER[‘HTTP_USER_AGENT’]
Your server reports this value: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1 AlexaToolbar/alxf-2.15
Pass[PASS] $_SERVER[‘SERVER_ADDR’]
Your server reports this value: 174.121.162.130
Pass[PASS] WordPress® Memory Limit
Your WordPress® memory limit (WP_MEMORY_LIMIT in /wp-config.php, or by default), is set to: 96M
Pass[PASS] WordPress® MAX Memory Limit
Your WordPress® MAX memory limit (WP_MAX_MEMORY_LIMIT in /wp-config.php, or by default), is set to: 256M
Pass[PASS] WordPress® External HTTP Requests
Your WordPress® External HTTP Requests (WP_HTTP_BLOCK_EXTERNAL in /wp-config.php, or by default), is set to: FALSE
Pass[PASS] WordPress® DB Charset
Your WordPress® database charset (DB_CHARSET in /wp-config.php, or by default), is set to: utf8
Pass[PASS] WordPress® DB Collation
Your WordPress® database collation (DB_COLLATE in /wp-config.php, or by default), is set to: an empty string
Pass[PASS] WordPress® Character Encoding
Your WordPress® installation is operating with UTF-8 encoding, under: WordPress -› Settings -› Reading -› Encoding.
Pass[PASS] WordPress® Home URL
Your WordPress® home URL is configured to run on: http://www.wpskillset.com, and that matches the current host name: http://www.wpskillset.com
Pass[PASS] WordPress Site URL
Your WordPress® site URL is configured to run on: http://www.wpskillset.com, and that matches the current host name: http://www.wpskillset.com
Pass[PASS] WordPress® Debugging Mode
Your WordPress® installation is NOT running in debugging mode (WP_DEBUG in /wp-config.php, or by default), is NOT set to TRUE.
———————————————————————————

Posted: Friday Aug 17th, 2012 at 4:28 am #22304

Hi Chrisitan,

To check if I am receiving things fine at the server side, I changed the notification url to the standard S2 MEmber paypal notification i.e. http://www.wpskillset.com/?s2member_paypal_notify=1

After doing so, I checked the log again, I can see that the Post is fine, but unable to verify Server. Overall it looks like somethings not right in the conversion file to convert the message to S2Member required format.

Paypal_ipn.log

PHP v5.2.17 :: WordPress® v3.4.1 :: s2Member® v120703 :: s2Member® Pro v120703
Memory 44.79 MB :: Real Memory 45.00 MB :: Peak Memory 44.86 MB :: Real Peak Memory 45.00 MB
www.wpskillset.com/?s2member_paypal_notify=1
User-Agent: 
array (
  'mc_gross' => '1.00',
  'invoice' => '5421999',
  'protection_eligibility' => 'Ineligible',
  'payer_id' => 'JZJE3GFFKQ7RS',
  'tax' => '0.00',
  'payment_date' => '01:05:03 Aug 17, 2012 PDT',
  'payment_status' => 'Completed',
  'charset' => 'windows-1252',
  'first_name' => 'sudhir',
  'mc_fee' => '0.34',
  'notify_version' => '3.6',
  'custom' => '',
  'payer_status' => 'verified',
  'business' => '111@222.com',
  'quantity' => '1',
  'verify_sign' => 'AJ8AOnKio3Pt0.vQM31eNl-CpUrlA5xWtq2FATYdippjkz0cruqjq7w1',
  'payer_email' => 'sudhir2krishnan@gmail.com',
  'txn_id' => '76681356UX670160S',
  'payment_type' => 'instant',
  'last_name' => 'krishnan',
  'receiver_email' => '111@111.com',
  'payment_fee' => '0.34',
  'receiver_id' => 'CSLAJAGCH2RJS',
  'txn_type' => 'web_accept',
  'item_name' => 'Quality Wordpress Websites - Video Tutorials Course',
  'mc_currency' => 'USD',
  'item_number' => 'wso_mrchh5_5421999',
  'residence_country' => 'US',
  'handling_amount' => '0.00',
  'transaction_subject' => 'Quality Wordpress Websites - Video Tutorials Course',
  'payment_gross' => '1.00',
  'shipping' => '0.00',
  'ipn_track_id' => 'db80807d6d8a2',
  's2member_log' => 
  array (
    0 => 'IPN received on: Fri Aug 17, 2012 8:05:11 am UTC',
    1 => 's2Member POST vars verified through a POST back to PayPal®.',
    2 => 'Unable to verify `$_SERVER["HTTP_HOST"]`. Please check the `custom` value in your Button Code. It MUST start with your domain name.',
  ),
  'subscr_gateway' => 'paypal',
)

paypal_rtn.log

PHP v5.2.17 :: WordPress® v3.4.1 :: s2Member® v120703 :: s2Member® Pro v120703
Memory 41.76 MB :: Real Memory 42.00 MB :: Peak Memory 41.93 MB :: Real Peak Memory 42.00 MB
www.wpskillset.com/?s2member_paypal_return=1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1 AlexaToolbar/alxf-2.15
array (
  'subscr_gateway' => 'paypal',
  's2member_log' => 
  array (
    0 => 'No Return-Data. Customer must wait for Email Confirmation.',
    1 => 'Redirecting Customer to the Home Page. Customer must wait for Email Confirmation.',
    2 => 'Note. This can sometimes happen when/if you are offering a free Trial Period. There are times when a Payment Gateway will NOT supply s2Member with any data immediately after checkout. When/if this happens, s2Member must process the transaction via IPN only ( i.e. behind-the-scene ), and the Customer must wait for Email Confirmation in these cases.',
    3 => 'array (
  \'s2member_paypal_return\' => \'1\',
)',
  ),
)

The Ipn script I am using is on the same server, in the root folder. Warrior_Ipn.php, the same is pasted below.

<?php
/*
---- Configuration. -------------------------------------------------------------------------------------------------------*/

/* s2Member installation domain. */
$config["custom"] = "www.wpskillset.com";

/* s2Member Membership Level# */
$config["item_number"] = "1";

/* s2Member Proxy IPN URL handler. - You'll get this from Dashboard: `s2Member -> PayPal Options -> IPN Integration -> Proxy IPN URL`. */
$config["proxy_ipn_handler_url"] = "http://www.wpskillset.com/?s2member_paypal_notify=1";

/* Or use "http://www.wpskillset.com/?s2member_paypal_notify=1&s2member_paypal_proxy=proxy&s2member_paypal_proxy_verification=12b122ba5812a0fcdfb1a1613727464d";  */

/*
---- Do NOT edit anything below, unless you know what you're doing. --------------------------------------------------------*/
@ignore_user_abort(true);
header("HTTP/1.0 200 OK");
header("Content-Type: text/plain; charset=utf-8");
eval /* Clean buffers. */('while (@ob_end_clean ());');

if( /* No ``$_POST`` vars? */empty($_POST) || !is_array($_POST))
	exit /* Exit now. There is nothing to process. */();
	
$_p = (get_magic_quotes_gpc()) ? stripslashes_deep($_POST) : $_POST;
$_p = trim_deep /* Now trim this array deeply. */($_p);

$_paypal_ipn_server_ip = $_ip = /* Forge IP address to match the PayPal® IPN server here. */ "216.113.188.202";
/* See list of IPs here: <https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_golivechecklist>. */

$_p["custom"] = $config["custom"]; $_p["item_number"] = $config["item_number"];
echo (trim(curlpsr($config["proxy_ipn_handler_url"], http_build_query($_p, null, "&"), 20, 20, array("REMOTE_ADDR: ".$_ip, "HTTP_X_FORWARDED_FOR: ".$_ip))));

unset($_paypal_ipn_server_ip, $_ip);
/*
---- Do NOT edit anything below, unless you know what you're doing. --------------------------------------------------------*/
function trim_deep($value = FALSE)
	{
		return is_array($value) ? array_map("trim_deep", $value) : trim((string)$value);
	}
function stripslashes_deep($value = FALSE)
	{
		return is_array($value) ? array_map("stripslashes_deep", $value) : stripslashes((string)$value);
	}
function curlpsr($url = FALSE, $post_vars = array(), $max_con_secs = 20, $max_stream_secs = 20, $headers = array())
	{
		if(($url = trim($url)) && ($curl = curl_init()))
			{
				if /* Because cURL can't deal with complex arrays. */(is_array($post_vars))
					$post_vars = http_build_query($post_vars);
				$follow = (!ini_get("safe_mode") && !ini_get("open_basedir"));
				curl_setopt_array($curl, array(CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_CONNECTTIMEOUT => $max_con_secs, CURLOPT_TIMEOUT => $max_stream_secs, CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => $headers, CURLOPT_POSTFIELDS => $post_vars, CURLOPT_FOLLOWLOCATION => $follow, CURLOPT_MAXREDIRS => (($follow) ? 5 : 0), CURLOPT_ENCODING => "", CURLOPT_VERBOSE => false, CURLOPT_FAILONERROR => true, CURLOPT_FORBID_REUSE => true, CURLOPT_SSL_VERIFYPEER => false));
				$o = trim(curl_exec($curl));
				curl_close($curl);
			}
		return (!empty($o)) ? $o : false;
	}
?>

I am unable to use the server check tool, can you please provide some instructions on how to use the same?

Thanks, Best Regards,
Santosh

Posted: Sunday Aug 12th, 2012 at 5:59 am #21814

Hello Cristian,

Thanks for the support.

Please below the paypal-ipn.log and the paypal-rtn.log

Paypal-IPN.log



PHP v5.2.17 :: WordPress® v3.4.1 :: s2Member® v120703 :: s2Member® Pro v120703
Memory 43.02 MB :: Real Memory 43.25 MB :: Peak Memory 43.10 MB :: Real Peak Memory 43.25 MB
www.masterytutorials.com/?s2member_paypal_notify=1
User-Agent: 
array (
 's2member_log' => 
 array (
   0 => 'Unable to verify $_POST vars. This is most likely related to an invalid configuration of s2Member, or a problem with server compatibility.',
   1 => 'If you\'re absolutely SURE that your configuration is valid, you may want to run some tests on your server, just to be sure $_POST variables are populated, and that your server is able to connect/communicate with your Payment Gateway over an HTTPS connection.',
   2 => 's2Member uses the `WP_Http` class for remote connections; which will try to use `cURL` first, and then fall back on the `FOPEN` method when `cURL` is not available. On a Windows® server, you may have to disable your `cURL` extension; and instead, set `allow_url_fopen = yes` in your php.ini file. The `cURL` extension (usually) does NOT support SSL connections on a Windows® server.',
   3 => 'Please see this thread: `http://www.s2member.com/forums/topic/ideal-server-configuration-for-s2member/` for details regarding the ideal server configuration for s2Member.',
   4 => 'array (
 \'s2member_paypal_notify\' => \'1\',
 \'mc_gross\' => \'1.00\',
 \'invoice\' => \'5392880\',
 \'protection_eligibility\' => \'Ineligible\',
 \'payer_id\' => \'JZJE3GFFKQ7RS\',
 \'tax\' => \'0.00\',
 \'payment_date\' => \'02:50:20 Aug 12, 2012 PDT\',
 \'payment_status\' => \'Completed\',
 \'charset\' => \'windows-1252\',
 \'first_name\' => \'sudhir\',
 \'mc_fee\' => \'0.34\',
 \'notify_version\' => \'3.6\',
 \'custom\' => \'www.masterytutorials.com\',
 \'payer_status\' => \'verified\',
 \'business\' => \'abc@infinityonlinesolutions.com\',
 \'quantity\' => \'1\',
 \'verify_sign\' => \'Aani8wJF2FZAfiDSiSoZb3nFQRCLAT7r7lkrFOLmTw.lQjnWg6rvwQ80\',
 \'payer_email\' => \'xyz@gmail.com\',
 \'txn_id\' => \'1HF71752007096138\',
 \'payment_type\' => \'instant\',
 \'last_name\' => \'krishnan\',
 \'receiver_email\' => \'abc@infinityonlinesolutions.com\',
 \'payment_fee\' => \'0.34\',
 \'receiver_id\' => \'CSLAJAGCH2RJS\',
 \'txn_type\' => \'web_accept\',
 \'item_name\' => \'Quality Wordpress Websites - Video Tutorials Course\',
 \'mc_currency\' => \'USD\',
 \'item_number\' => \'1\',
 \'residence_country\' => \'US\',
 \'handling_amount\' => \'0.00\',
 \'transaction_subject\' => \'Quality Wordpress Websites - Video Tutorials Course\',
 \'payment_gross\' => \'1.00\',
 \'shipping\' => \'0.00\',
 \'ipn_track_id\' => \'704dbc7c87258\',
 \'saleid\' => \'2699611\',
)',
 ),
)

PHP v5.2.17 :: WordPress® v3.4.1 :: s2Member® v120703 :: s2Member® Pro v120703
Memory 43.02 MB :: Real Memory 43.25 MB :: Peak Memory 43.10 MB :: Real Peak Memory 43.50 MB
www.masterytutorials.com/?s2member_paypal_notify=1
User-Agent: 
array (
 's2member_log' => 
 array (
   0 => 'Unable to verify $_POST vars. This is most likely related to an invalid configuration of s2Member, or a problem with server compatibility.',
   1 => 'If you\'re absolutely SURE that your configuration is valid, you may want to run some tests on your server, just to be sure $_POST variables are populated, and that your server is able to connect/communicate with your Payment Gateway over an HTTPS connection.',
   2 => 's2Member uses the `WP_Http` class for remote connections; which will try to use `cURL` first, and then fall back on the `FOPEN` method when `cURL` is not available. On a Windows® server, you may have to disable your `cURL` extension; and instead, set `allow_url_fopen = yes` in your php.ini file. The `cURL` extension (usually) does NOT support SSL connections on a Windows® server.',
   3 => 'Please see this thread: `http://www.s2member.com/forums/topic/ideal-server-configuration-for-s2member/` for details regarding the ideal server configuration for s2Member.',
   4 => 'array (
 \'s2member_paypal_notify\' => \'1\',
 \'mc_gross\' => \'1.00\',
 \'invoice\' => \'5392880\',
 \'protection_eligibility\' => \'Ineligible\',
 \'payer_id\' => \'JZJE3GFFKQ7RS\',
 \'tax\' => \'0.00\',
 \'payment_date\' => \'02:50:20 Aug 12, 2012 PDT\',
 \'payment_status\' => \'Completed\',
 \'charset\' => \'windows-1252\',
 \'first_name\' => \'sudhir\',
 \'mc_fee\' => \'0.34\',
 \'notify_version\' => \'3.6\',
 \'custom\' => \'www.masterytutorials.com\',
 \'payer_status\' => \'verified\',
 \'business\' => \'abc@infinityonlinesolutions.com\',
 \'quantity\' => \'1\',
 \'verify_sign\' => \'Aani8wJF2FZAfiDSiSoZb3nFQRCLAT7r7lkrFOLmTw.lQjnWg6rvwQ80\',
 \'payer_email\' => \'xyz@gmail.com\',
 \'txn_id\' => \'1HF71752007096138\',
 \'payment_type\' => \'instant\',
 \'last_name\' => \'krishnan\',
 \'receiver_email\' => \'abc@infinityonlinesolutions.com\',
 \'payment_fee\' => \'0.34\',
 \'receiver_id\' => \'CSLAJAGCH2RJS\',
 \'txn_type\' => \'web_accept\',
 \'item_name\' => \'Quality Wordpress Websites - Video Tutorials Course\',
 \'mc_currency\' => \'USD\',
 \'item_number\' => \'1\',
 \'residence_country\' => \'US\',
 \'handling_amount\' => \'0.00\',
 \'transaction_subject\' => \'Quality Wordpress Websites - Video Tutorials Course\',
 \'payment_gross\' => \'1.00\',
 \'shipping\' => \'0.00\',
 \'ipn_track_id\' => \'704dbc7c87258\',
)',
 ),
)

Paypal-rtn.log

PHP v5.2.17 :: WordPress® v3.4.1 :: s2Member® v120703 :: s2Member® Pro v120703
Memory 39.99 MB :: Real Memory 40.25 MB :: Peak Memory 40.16 MB :: Real Peak Memory 40.25 MB
www.masterytutorials.com/?s2member_paypal_return=1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1 AlexaToolbar/alxf-2.15
array (
  'subscr_gateway' => 'paypal',
  's2member_log' => 
  array (
    0 => 'No Return-Data. Customer must wait for Email Confirmation.',
    1 => 'Redirecting Customer to the Home Page. Customer must wait for Email Confirmation.',
    2 => 'Note. This can sometimes happen when/if you are offering a free Trial Period. There are times when a Payment Gateway will NOT supply s2Member with any data immediately after checkout. When/if this happens, s2Member must process the transaction via IPN only ( i.e. behind-the-scene ), and the Customer must wait for Email Confirmation in these cases.',
    3 => 'array (
  \'s2member_paypal_return\' => \'1\',
)',
  ),
)

Thanks, Best Regards,
Santosh

Posted: Monday Aug 6th, 2012 at 5:04 am #21209

Hey Phily, Thanks for the great add-on..Ross thanks for the great follow-up….

Videos works for for not logged in users, very useful!!!

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

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.