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.

PayPal Pro button not working

Home Forums Community Forum PayPal Pro button not working

This topic contains 21 replies, has 3 voices. Last updated by  David Kennaway 3 years, 10 months ago.

Topic Author Topic
Posted: Friday Feb 1st, 2013 at 5:27 am #40242

I get redirected to back to the page the Paypal Button came from with a blank space where the PayPal Pro form was.

See http://www.nbo.org.uk/membership/individual-member/

This used to be working a while ago. I’m not sure what could have changed.

The PayPal shortcode is

[s2Member-Pro-PayPal-Form level="2" ccaps="" desc="£15 annual recurring charge for ongoing membership" ps="paypal" lc="" cc="GBP" dg="0" ns="1" custom="www.nbo.org.uk" ta="0" tp="0" tt="D" ra="15" rp="1" rt="Y" rr="1" rrt="" rra="2" accept="paypal" accept_via_paypal="paypal" coupon="" accept_coupons="0" default_country_code="" captcha="0" /]

We only use PayPal Express.

List Of Topic Replies

Viewing 21 replies - 1 through 21 (of 21 total)
Author Replies
Author Replies
Posted: Saturday Feb 2nd, 2013 at 10:29 am #40426
Staff Member

Thanks for reporting this important issue.

It appears to me that you have a PHP error terminating script execution. The error is not displayed on-site, which is good. However, this means that you’ll need to check your server’s PHP error log, or contact your hosting about the issue.

Have you installed any new plugins recently? Upgraded anything recently?

I’m not aware of this being a widespread issue. I have to assume at this point it’s a plugin conflict or another installation-specific problem. Looking at your PHP error log should give you something to go on.

Please let us know if problems persist :-)

Posted: Monday Feb 4th, 2013 at 9:07 am #40715

Getting the php error

PHP Fatal error:  Cannot use string offset as an array in /data02/nboorguk/public_html/wp-content/plugins/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php on line 647

when plugin Easy Table http://wordpress.org/extend/plugins/easy-table/ is activated

This is a bit unfortunate as it is a very useful plugin and doesn’t degrade very beautifully when deactivated.

Posted: Monday Feb 4th, 2013 at 2:39 pm #40767
Staff Member

Thanks for reporting this important issue.

That would lead me to believe that your Pro Form is being modified in a way that is converting this input field into a string, instead of as an array (which is the default behavior).

s2member_pro_paypal_checkout[custom_fields]

I assume this is happening during form submission, right? If so, please post a link to your Pro Form and I’ll see what help I can give you from looking at the HTML output.

Posted: Monday Feb 4th, 2013 at 8:15 pm #40802

There’s a Pro Form which appears when clicking the Join button in http://www.nbo.org.uk/membership/individual-member/ – the form is created using a shortcode, so I don’t understand how altering HTML will help?

Posted: Tuesday Feb 5th, 2013 at 4:31 am #40828
Staff Member

Thanks for your reply :-)

The HTML output there looks fine. Interesting.

If you would like to send us a Dashboard login I will run diagnostics for you.
Please use: s2Member® » Private Contact Form

Posted: Tuesday Feb 5th, 2013 at 5:46 am #40840

It’s working fine without the Easy Table plugin (which I’ve deactivated for the moment to enable testing). I’ll send you a login via the Contact Form :-)

Posted: Tuesday Feb 5th, 2013 at 6:15 am #40845
Ronnie
Username: Zeeflo

@David and @Jason.

This is the SAME error we had.

Unfortunately we had to go all way through with disabling the wpautoparagraph function.
Its IE thats got some serious issues about what it thinks a webpage should look like.

The

</p>

just before your shortcode might work????

Posted: Tuesday Feb 5th, 2013 at 7:57 am #40853

After more testing have now discovered that after getting to PayPal and after logging in and clicking the ‘Agree and Continue’ button which says I’ll be sent back to my site for confirmation of payment I get sent back to the original page:

http://www.nbo.org.uk/membership/individual-member/?s2member_paypal_xco=s2member_pro_paypal_checkout_return&token=EC-XXXXXXXXXXXXXXXXX

No payment is taken from PayPal and no user registered.

From reading the settings page I was expecting to return to a page like http://www.nbo.org.uk/?s2member_paypal_return=1&s2member_paypal_proxy=paypal&s2member_paypal_proxy_use=x-preview

Payments were working perfectly a while ago when one of my colleagues did some tests and went through the whole process.

@Ronnie – I’m not having a problem with the form being created if Easy Tables is not activated

Posted: Tuesday Feb 5th, 2013 at 8:28 am #40855
Ronnie
Username: Zeeflo

@ David You have a problem with your button not being active in Internet Explorer ;)
You cant click it using that browser, because of the paragraph issues with IE.

Posted: Wednesday Feb 6th, 2013 at 4:24 pm #40927

@Ronnie – I think I may have sorted the problem with IE :-)

Posted: Thursday Feb 7th, 2013 at 9:17 am #41028

@Jason – haven’t heard from you regarding running diagnostics. Any news?

Posted: Thursday Feb 7th, 2013 at 9:17 pm #41148
Staff Member

Thanks for the follow-ups :-)

David Kennaway

Details received. Thank you!

No. Nothing on our end of this yet. I took a quick look for you, but it’s very difficult to troubleshoot things like this on a site with so many active plugins. Too many variables at play. If you’d like me to take a closer look, please setup a test installation with the two plugins that are conflicting and try to reproduce it there. If you can narrow it down to a specific conflict, there might be something we can do to assist with this.

Posted: Friday Feb 8th, 2013 at 7:06 am #41193

@Jason Thanks for the reply, we’ll try and set up a test installation, although surely it would be easier for you (can you not add the Easy Tables plugin to one of your test installations and see if there is a conflict with PayPal Pro forms?)

However, on the other matter raised (with Easy Tables plugin deactivated) about returning to the website from PayPal after agreeing the payment, getting sent to the link http://www.nbo.org.uk/membership/individual-member/?s2member_paypal_xco=s2member_pro_paypal_checkout_return&token=EC-XXXXXXXXXXXXXXXXX and the process stops – have you any ideas why this is happening?

Posted: Monday Feb 11th, 2013 at 6:49 pm #41454
Staff Member

Thanks for the follow-up :-)

@Jason Thanks for the reply, we’ll try and set up a test installation, although surely it would be easier for you (can you not add the Easy Tables plugin to one of your test installations and see if there is a conflict with PayPal Pro forms?)

Please reproduce the issue that you had before on a test installation, and then send it to us for review. We can’t give a high priority to troubleshooting 3rd-party components and plugins, but if we’re going to investigate this for you; it would be nice to have it reproduced in the same environment in which the issue occurred, under the same configuration, etc. Thanks! See also: s2Member® » Support Policy

You may also want to contact the developer of the Easy Tables plugin for assistance on this. Between the two of us, maybe we work to resolve whatever conflict exists. Perhaps the developer of that component can offer some insight as well.

However, on the other matter raised (with Easy Tables plugin deactivated) about returning to the website from PayPal after agreeing the payment, getting sent to the link http://www.nbo.org.uk/membership/individual-member/?s2member_paypal_xco=s2member_pro_paypal_checkout_return&token=EC-XXXXXXXXXXXXXXXXX and the process stops – have you any ideas why this is happening?

Did you have logging enabled when you ran your tests? I just took a look at your installation and I find three log entries in the s2Member® Auto-Return log file (paypal-rtn.log). All three log entries were related to a preview from the Dashboard only, nothing from a test transaction yet.

See: Dashboard -› s2Member® -› PayPal® Options -› Account Details -› Logging

array (
  'subscr_gateway' => 'paypal',
  's2member_log' => 
  array (
    0 => 'Test preview of Return Page `proxy_use`: ( `x_preview` ).',
    1 => 'Redirecting Customer to the Home Page. Test preview of Return Page `proxy_use`: ( `x_preview` ).',
  ),
  's2member_paypal_proxy' => 'paypal',
  's2member_paypal_proxy_use' => 'x-preview',
)

After more testing have now discovered that after getting to PayPal and after logging in and clicking the ‘Agree and Continue’ button which says I’ll be sent back to my site for confirmation of payment I get sent back to the original page:

http://www.nbo.org.uk/membership/individual-member/?s2member_paypal_xco=s2member_pro_paypal_checkout_return&token=EC-XXXXXXXXXXXXXXXXX

No payment is taken from PayPal and no user registered.

From reading the settings page I was expecting to return to a page like http://www.nbo.org.uk/?s2member_paypal_return=1&s2member_paypal_proxy=paypal&s2member_paypal_proxy_use=x-preview

Oh. I see now. You’re running s2Member® Pro Forms. The PayPal Auto-Return handler is used only in PayPal® Standard Button integrations. With Pro Forms, this is not necessary because the customer comes back to your Pro Form, where a message is displayed; thanking the customer on-site. Not with a generic thank-you page handler.

In short, the behavior you’ve described would be expected. If you would like to customize the thank-you page that works with your Pro Forms, please use the success="" Shortcode Attribute and create a custom thank-you page that contains whatever you like better.

See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Custom Return URLs Upon Success
See also: Dashboard -› s2Member® -› PayPal® Pro Forms -› Shortcode Attributes (Explained)

Dashboard -› s2Member® -› PayPal® Pro Forms -› Shortcode Attributes (Explained)
success="" 100% optional. This can be used to define a Custom Return URL on success.
Posted: Tuesday Feb 12th, 2013 at 7:51 am #41549

Will let you know about the test installation later.

The more urgent matter is that payments are not being taken and memberships are not created with this issue present. It seems we have the same problem as ‘PayPal Success Return URL not working’ http://www.s2member.com/forums/topic/paypal-success-return-url-not-working/

I created the diagnostics file as suggested and the result is at http://www.nbo.org.uk/?s2_diagnostics

It was all working fine a few weeks ago as one of our team successfully joined and paid through PayPal as you can see if you look at the paypal-ipn.log

I am wondering if the changes made by PayPal regarding the types of accounts and introduction of PayFlow could have contributed to the difficulties we are facing? We only have a standard ie non-Pro account and beforehand that seemed fine for recurrent billing through PayPal and s2Member.

Posted: Thursday Feb 14th, 2013 at 10:44 pm #41754
Staff Member

Thanks for your patience.

I am wondering if the changes made by PayPal regarding the types of accounts and introduction of PayFlow could have contributed to the difficulties we are facing? We only have a standard ie non-Pro account and beforehand that seemed fine for recurrent billing through PayPal and s2Member.

I just took another look at your installation.
No, I don’t think this is an issue for you, because you’re running Express Checkout only it appears.

However, on the other matter raised (with Easy Tables plugin deactivated) about returning to the website from PayPal after agreeing the payment, getting sent to the link http://www.nbo.org.uk/membership/individual-member/?s2member_paypal_xco=s2member_pro_paypal_checkout_return&token=EC-XXXXXXXXXXXXXXXXX and the process stops – have you any ideas why this is happening?

I was able to reproduce this on your installation, and then I ran diagnostics again for you. The underlying cause of this is a plugin conflict with the Transients API in WordPress®. Your installation is not storing WordPress® Transient data properly. This is creating problems with s2Member® that do not exist in a default WP installation. I also ran a scan against other plugins you’re running and it would appear that other plugins you’re running are also experiencing issues because of this conflict with the Transients API in WordPress®.

I would start be deactivating one plugin at a time until you find the conflicting plugin. I would start by disabling the DB Cache Reloaded Fix plugin that you’re running. That would be my first guess. We advise against running DB or Object caching plugins on a dynamic Membership site. If you need caching, please stick with Page caching provided by plugins like Quick Cache, WP Super Cache — or W3 Total Cache (but w/ only Page caching enabled).

Please let us know if problems persist :-)

Posted: Friday Feb 15th, 2013 at 5:17 pm #41902

Thanks for pointing me to DB Cache Reloaded Fix as the source of the problem. I don’t really understand why it didn’t cause problems a few weeks ago, as it has been activated all the time. Anyway deactivating it solves that problem, which is a relief.

Referring back to the original problem with Easy Table causing a conflict with s2Member and producing a fatal PHP error when pressing the PayPal button – I’ve copied the website over to a test installation (with a PayPal sandbox option activated as it happens) and with exactly the same plugins installed and with Easy Table activated this time. There’s no error produced and I get directed to the PayPal website, where I’m invited to input my credit card details or sign in with my PayPal account. All as it should be.

I ran your server check php file on both sites and they came back almost identical – except for the obvious differences of paths and urls – both running the same version of php.

I used the TPC! Memory Usage plugin to check for differences in the servers and the only differences I found were:
MySQL – 5.0.96-community on the problem site, 5.1.56-log on the test site that’s fine.
Magic Quotes – set to ON on the problem site, set to OFF on the test site that’s fine.

So it’s a mystery to me why the Easy Table plugin causes problems on one site and not the other one. Any ideas your end?

(NB another question arose when using the Sandbox – I appeared to be directed to the regular PayPal site rather than a different URL, so when I entered Sandbox username and password for the buyer it was rejected – is this to be expected?)

Posted: Monday Feb 18th, 2013 at 4:21 pm #42339
Staff Member

Thanks for the follow-up :-)

I’ve copied the website over to a test installation (with a PayPal sandbox option activated as it happens) and with exactly the same plugins installed and with Easy Table activated this time. There’s no error produced

Oh, good! So this is a simply configuration issue most likely.

I used the TPC! Memory Usage plugin to check for differences in the servers and the only differences I found were:
MySQL – 5.0.96-community on the problem site, 5.1.56-log on the test site that’s fine.
Magic Quotes – set to ON on the problem site, set to OFF on the test site that’s fine.

So it’s a mystery to me why the Easy Table plugin causes problems on one site and not the other one. Any ideas your end?

I don’t think either of those differences would cause a problem for WordPress® or s2Member®. Can you please check to see if one of these servers is running Mod Security?

See also: Knowledge Base » Mod Security, Random 503/403 Errors
See also: Dashboard -› s2Member® -› Log Files (Debug) -› s2Member® Log Viewer
– Look at log file: s2-http-api-debug.log (although not ALL Mod Security issues will show up here)

(NB another question arose when using the Sandbox – I appeared to be directed to the regular PayPal site rather than a different URL, so when I entered Sandbox username and password for the buyer it was rejected – is this to be expected?)

A Pro Form would only redirect you to the Sandbox if Sandbox Mode was enabled in your s2Member® configuration. See: Dashboard -› s2Member® -› PayPal® Options -› Account Details

Or, if a Payment Button (not a Pro Form) was generated using the Full HTML code, that HTML code would need to be updated once you move from the Sandbox to a live PayPal account.

Posted: Tuesday Feb 19th, 2013 at 6:45 pm #42523

The test server is on Dreamhost and does appear to have mod_security enabled. I’m not completely sure about the main server but adding in to the .htaccess file

<IfModule mod_security.c>
Redirect /olddirectory/oldfile.html http://www.nbo.org.uk/join-the-nbo/membership-signup/
</IfModule>

it appears that it’s not operating.

Regarding the redirection not happening to Sandbox. I have definitely enabled Sandbox and am using Sandbox Paypal username in the PayPal settings. Using Pro Forms only generated by a shortcode.

Posted: Friday Feb 22nd, 2013 at 9:00 pm #42879
Staff Member

Thanks for the follow-up :-)

On the server that is running Mod Security, I would watch your s2Member® log files carefully (particularly in the latest release of s2Member; keep tabs on your s2-http-api-debug.log file) for any server issues that result in 403, 404, or 503 errors. You can also monitor your web server logs for Mod Security issues.

Posted: Thursday Feb 28th, 2013 at 12:29 pm #43423

I’ve solved the problem of the conflict between Easy Table and s2Member Pro.

Easy Table allows changes to the shortcodes used by the plugin in its settings. There’s a shortcode for changing attributes in the form

[attr

etc. It appears that this was the cause of the conflict with s2Member. Changing the shortcode to be

[attri

etc sorted it!

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

This topic is closed to new replies. Topics with no replies for 2 weeks are closed automatically.

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.