We've dbl checked our settings and are getting an error after a person subscribes via paypal:
Unable to verify POST vars. Please contact Support for assistance
This is most likely related to an invalid PayPal configuration. Please check s2Member -> PayPal options
Do you know what setting we might have wrong? The plugin has been updated.
Thanks, Keith
Hi Keith. Thanks for the Dashboard access.Here is what my investigation uncovered.
1. I ran a test transaction and successfully reproduced the error that you're reporting.
( not good, so I continued )
2. I enabled logging under:
s2Member -> PayPal Options -> Logging/Debugging( nothing here but the same, POST VARS could not be verified, also not good )
3. I then uploaded /club/phpinfo.php
and I then discovered that you're running on a Windows server, with the cURL extension enabled. That's not a bad thing, but there are known issues with cURL on Windows, particularly with SSL connections, which are required by s2Member, in order to speak with PayPal.
4. I then uploaded these three test files:
club/curl-test-http-google.php
( connection failed here )club/curl-test-https-paypal.php
( connection failed here )club/fopen-test-https-paypal.php (
connection succeeded )
Conclusion. There seems to be an issue with the installation of cURL on your server. Fortunately, s2Member does NOT rely solely upon the cURL extension. s2Member can use a variety of methods, through the WP_Http class. The best method can be determined automatically by s2Member.
The problem on your server, is that cURL is installed ( which s2Member considers the best choice ). However, in your case, it's not ( because it's broken somehow ). So the solution that I recommend, is to disable the cURL extension, by editing the
php.ini file on your server.
You'll find a line that looks something like this:
- Code: Select all
extension=php_curl.dll
Change that to this ( disable it ):
- Code: Select all
;extension=php_curl.dll
Then, restart your web server and run another test transaction.
@C/TODO :: In the next release of s2Member... determine if there is a way for s2Member to avoid this problem automatically whenever cURL is not working as expected in a Windows environment.For the benefit of other readers.
Whenever possible, try to install s2Member on a Linux-based operating system. s2Member has been tested on Windows, and does work. However, the suggested hosting platform for WordPress, and also for s2Member is a Linux/Unix based operating system running Apache 2+ with PHP 5.2+http://wordpress.org/hosting/@COMPLETED/TODO :: In the next release of s2Member... determine if there is a way for s2Member to avoid this problem automatically whenever cURL is not working as expected in a Windows environment.UPDATE:This issue was addressed in the release of s2Member v3.2.- Compatibility. On a Windows® server, the cURL extension is usually NOT compatible with SSL communications. s2Member now signals to the WP_Http class, that it should temporarily disable the cURL transport when a remote URL is being processed with an `https://` prefix. This allows the WP_Http class to recover gracefully (automatically) and fall back on the FOPEN method. If you're running WordPress® on a Windows® server, you should make sure that you have this inside your php.ini file. ( `allow_url_fopen = on` ). A symptom of this bug, was to see an error in your paypal-ipn.log file, with something like: `Unable to verify _POST vars...`.