Implemented PayPal NVP API

digitalpoint

Well-known member
The PayPal integration XenForo uses is the old school "Website Payments" system that PayPal supports via creating a form and submitting it to PayPal. It works, but PayPal has an exponentially better API now that let you do a LOT more than just blindly take payments.

https://cms.paypal.com/us/cgi-bin/?...t_ID=developer/e_howto_api_nvp_NVPAPIOverview

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_reference

We use it for payments on our website, and it allows quite a bit more functionality... for example the IPN receiver is still used, but it's really just a for notices about future events. The event (payment) happening NOW is done in realtime via a token that's passed back.

You can do a lot of other useful things directly from the XF admin control panel (no need to log into PayPal's site)...

  • Manage recurring subscriptions (we can make an API call to find out if the user has/has not canceled their subscription... and we can edit/cancel if we wanted).
  • Allows you to process refunds (both full and partial).
  • PayPal transaction searching
  • Pre-authorizations (authorize an amount for capture in the future).

The API itself is SUPER easy to use and integrate (see first link in this post).

It could allow advanced things even that end-users could use (for example cancelation of a recurring subscription without needing them to log into PayPal and find their subscription transaction). It could also be used for less vague subscription expiration emails (since we can find out if the user has or has not actually canceled their subscription).

It also allows for better management in the admin control panel directly without needing to flip back and forth between there and PayPal's website.
 
Upvote 116
This suggestion has been implemented. Votes are no longer accepted.
This would be freaking amazing! Allowing them to cancel without logging into PayPal would be great! My users can never seem to figure out where to go in their PayPal account to cancel it.
Yeah, it's one of the biggest hassles with our vB subscriptions (which sadly the XF ones work the same currently). Ends up in a fair amount of disputes and the like because people didn't know they created a subscription, or thought they canceled it or thought that we somehow canceled it based on the email they got, etc...

Rather annoying really. And to be honest, the PayPal interface for managing recurring subscriptions his hidden away and kludgy anyway.

For all our custom stuff, we use the PayPal NVP API now and it's SO much better being able to do things like handle refunds with a single click.
 
They have a pretty amazing API that allows you to do all sorts of interesting things...
  • Chained Payments
  • Split Payments
  • Recurring payments/subscriptions
  • Payments on behalf of a third party
  • Preauth/settlements (even for third parties)
  • Micropayments (different fee structure for those)
And once you get past enough volume to get out of the bottom tier, it's really not that expensive (1.9% at top tier).
 
They have a pretty amazing API that allows you to do all sorts of interesting things...
  • Chained Payments
  • Split Payments
  • Recurring payments/subscriptions
  • Payments on behalf of a third party
  • Preauth/settlements (even for third parties)
  • Micropayments (different fee structure for those)
And once you get past enough volume to get out of the bottom tier, it's really not that expensive (1.9% at top tier).


Is this using the regular paypal or the special "merchant account" more advanced version (I can't remember what that's called, paypal payments pro?). Yes, I agree that Xenforo needs to add more payment options such as Authorize.net, Recurly.com or Chargify.com (for dunning and rebilling management).
 
The NVP API is available to normal PayPal accounts.

Is this on Xenforo's radar? It should be put in as a feature request. Would make an excellent option and add a lot of value to the software. Seems like it wouldn't take too much coding to implement, just switching the API and adding some options in the user control panel?

Also, I am curious if people can checkout with paypal and create a subscription if they are not paypal members and don't have an account with paypal. Is that possible?
 
They can check out via a credit card for one-time things, but you would need a PayPal account in order to setup a recurring subscription (which makes sense really).
 
Oh ok. I am just curious if there is a lot of cart abandonment with this or if paypal is smart and collects the payment info first then makes them create a paypal account? I don't have too much experience using paypal in this way, which is why I would like some other payment options with Xenforo like Authorize.net and other stand-alone merchant accounts.
 
I have a Paypal "merchant rate" which I have to applied for. You get lower rate when you pass a certain volume in sale in previous month.
The problem I have with Paypal is that they just hold/revert your payment for any random reason. I know my members are legit and their payments got put on hold/rejected and I can do nothing about it.

I have been talking to Braintree and in the process of getting a merchant account with them. I like the option of having optional payment API so I can switch back and forth between whoever is working nicer with us.

Each of our incoming payment is at a minimum of $1500 and the fee will eat up over time. The Braintree API is pretty nice actually.
 
They have a pretty amazing API that allows you to do all sorts of interesting things...
  • Chained Payments
And once you get past enough volume to get out of the bottom tier, it's really not that expensive (1.9% at top tier).

Chained payments is one of the really nice features. For those that don't know what you can do with chained payments is, if the purchase price is $100 to the customer, on the back end, $80 can be given to merchant A and $20 to merchant B. However the customer will only ever see 1 charge on their CC bill.

1.9% for card not present transaction? are you sure? Where is that in their rate structure?
Most people would be in the <$10K per month which puts you at $2.5% + $0.30 per tx + monthly fees. True cost is usually at 3.3 - 3.5% And the 2.5% is the lowest possible rate you will be charged, it may not be the final rate. You are charged higher if the CC is an affiliated card, i.e. customer earns miles, or hotel points, etc..

The thing most people don't know is that there really isn't that many CC processing companies out there. When you work your way up the chain, the transaction will get funnelled through one of the clearing houses.
In the USA, there are three main clearing houses, First Data, Heartland, PaymentTech -- Chase. For a long time Paypal was using Chase, not sure if that is still true. The higher up the chain you can get, the better.

I am not disparaging Paypal, if it works for you, great. Just curious as to the reasons you like it.
 
Yeah, it's one of the biggest hassles with our vB subscriptions (which sadly the XF ones work the same currently). Ends up in a fair amount of disputes and the like because people didn't know they created a subscription, or thought they canceled it or thought that we somehow canceled it based on the email they got, etc...

Rather annoying really. And to be honest, the PayPal interface for managing recurring subscriptions his hidden away and kludgy anyway.

For all our custom stuff, we use the PayPal NVP API now and it's SO much better being able to do things like handle refunds with a single click.

Have you heard back from any of the developers on this? Seems like an easy thing to fix and would be great features to have for version 1.1!!!
 
He was talking about XF dev's since it's something like an API change + added options via the forum that needs to be added.
Still, nowhere close to being easy.

People need to realize that the majority of things they think are easy have a ton of things that happen in the background to make them work, which often makes them a lot more time consuming or difficult than they realize.
 
It could allow advanced things even that end-users could use (for example cancelation of a recurring subscription without needing them to log into PayPal and find their subscription transaction). It could also be used for less vague subscription expiration emails (since we can find out if the user has or has not actually canceled their subscription).

It also allows for better management in the admin control panel directly without needing to flip back and forth between there and PayPal's website.

I'd switch over a few sites to XF immediately if they introduced this feature. For forums that rely heavily on subscriptions, it's a real pain not being able to control things from within the forum - for both the user and admin. It's not straight forward for users to manage subs from within PayPal, so it puts them off from subscribing in the first place.

Would LOVE to see this introduced!
 
I'd switch over a few sites to XF immediately if they introduced this feature. For forums that rely heavily on subscriptions, it's a real pain not being able to control things from within the forum - for both the user and admin. It's not straight forward for users to manage subs from within PayPal, so it puts them off from subscribing in the first place.

Would LOVE to see this introduced!

Doesn't seem like a major thing to update, hopefully they include this in the next interim version and give us the additional functionality.
 
Top Bottom