Page 1 of 1

Unable to verify POST vars?

PostPosted: October 16th, 2010, 5:57 pm
by dishen
Hi guys,

Can anybody help me with the following issue.

When checking out in Paypal, the transaction is succesful, but the buyer gets a notice that: "The Post Var" is not oke.

How can I solve this issue? I have checked the settings in Paypal and in S2Member options, 100 times.

Thanks for your help.

Dishen

And by the way...I love S2member. It is great and easy to use. I only have the minor issue described above.

Unable to verify POST vars?

PostPosted: October 16th, 2010, 9:57 pm
by Jason Caldwell
Hi Dishen. Thanks for reporting your experience with s2Member.

"Unable to verify POST vars"...

This error is usually caused by one of these issues:

1. After you went live, did you update your PayPal Account Details inside s2Member?
( see: s2Member -> PayPal Options -> Account Details )

2. If so, did you also disable Sandbox mode?
In your Dashboard, see: s2Member -> PayPal Options -> Account Details to disable Sandbox mode.

3. Is your PayPal Account, a "Business" account?
You need a PayPal "Business" account. A basic PayPal account used only for making purchases is not enough. You'll need to upgrade to a "Business" status, which is free. This makes you a "Seller" AND a "Buyer" - instead of just a Buyer.

4. Are you using the Shortcode Button, or did you integrate the Full Button Code?
If you integrated the Full Button code, make sure you re-generate your Button Codes after you go live. The Full Button Code MUST be generated with Sandbox mode disabled. Otherwise, you will get this error; because a live transaction is being sent through the Sandbox ( not good ).

5. Are you absolutely sure that you've completed both the IPN and Auto-Return/PDT configuration steps listed under: s2Member -> PayPal Options ? If so, please double-check to make sure your entered the right PDT Identity Token. It MUST match up with the one provided to you by PayPal.

If you rule out all of the above, then the problem is probably related to your server configuration, and/or the hosting company that you're using. This problem can usually be resolved easily. It's related to the `allow_url_fopen = on` directive in your php.ini file. Also, it sometimes has to do with SSL communication to a remote location. Not all servers are equipped with SSL communication by default.

See: viewtopic.php?f=4&t=599&p=3060&hilit=fopen+test#p2625
Here is another related thread: viewtopic.php?f=4&t=414&p=1840#p1718

If all else fails, and you can't get your server to play nice... I highly recommend MediaTemple (gs). http://www.mediatemple.net/go/order/?re ... ks-inc.com

Re: Unable to verify POST vars?

PostPosted: October 16th, 2010, 11:37 pm
by chelle
I am having this problem too. My test site on a different server was working fine, and now that I've moved to a VPS I ran into this issue. Everything in the settings is the way it should be, and never tried sandbox mode so that shouldn't apply either. So, I am thinking it must be related to my server configurations.

The good news is my VPS is managed, so they will do whatever I ask them to do in 25 minutes or less. I am just not sure what to ask them :) Are there any tests I can try to identify the cause of this? Would you be able to give some insight on what the settings in my php.ini file should be? How would i know if my server has ssl communication?

My server is using the latest version of Centos as the operating system, so I don't think it would be caused by the same issues the Windows users were running into hopefully.

Thanks!

Re: Unable to verify POST vars?

PostPosted: October 22nd, 2010, 4:24 am
by Jason Caldwell
Thanks for reporting your experience.
~ Much appreciated.

The ideal PHP configuration is this:
PHP 5.2+ with cURL enabled on a Linux/Unix operating system.
This is the default configuration by most hosting companies ( not all, but most ).
In your php.ini file, you'll want to have this line in case cURL is not enabled by your hosting provider:
Code: Select all
allow_url_fopen = On
This is the default on most servers ( allow_url_fopen = On ).

s2Member will try to use cURL first. If cURL is not available, s2Member will try to use the FOPEN method, in which case the allow_url_fopen = On setting will be required.

-----------------------------------------------

If you're running WordPress on a Windows server:
You'll want to disable the cURL extension because Windows servers usually do not play nice with cURL over the HTTPS protocol. So instead, you can just disable the cURL extension. This way s2Member will use the FOPEN method; in which case you will need to have this in your php.ini file:
Code: Select all
;extension=php_curl.dll
extension=php_openssl.dll
allow_url_fopen = On
The cURL extension is commented out ( disabled ).

------------------------------------------------

In ALL CASES, your installation of PHP must be compiled with support for HTTPS connections. If you're racking your brain over problems connecting to PayPal, it's probably because your installation of PHP is not compiled with the OpenSSL extension. In other words, your server can't connect to any URL that starts with https://. Almost ALL major hosting companies come with OpenSSL pre-compiled. That being said... if you're running your own server, you may have forgotten. The best way to test this, is to load this file on your server and open it in a browser. If OpenSSL was not compiled, you will get an error to that affect.
Code: Select all
<?php
ini_set
("display_errors", true);
ini_set("error_reporting", E_ALL);
echo file_get_contents("https://www.paypal.com/");
?>