Paypal, Recurring Billing, and ActiveMerchant

2019-03-08 04:15发布

问题:

I'm trying to research how to add a subscription based pay model on an existing site of mine, but am running into a lot of conflicting information and caused me to be a bit lost.

All I need is a very simple way to set up recurring billing (per month) by credit card. I just need a simple solution, but am having a hard time finding the best practices of setting it up.

So far I understand that this is supported by Paypal's Website Payment Standards option. I just have a few questions regarding how I should implement it:

  • First, does Paypal require a user to register for recurring billing with Website Payment Standard?

  • I planned to use ActiveMerchant but I found some blogs that says ActiveMerchant doesn't support recurring billing from Paypal. is this true?

  • I found the SASS Rails Kit by railskits.com, which says it supports recurring billing with Paypal's Website Payments Standard. If I purchased this, would the code be clear enough to understand and implement in my own site, or is it kind of packaged deal for starter sites and not existing sites?

  • I found a lot of blog with help with recurring billing with ActiveMerchant, but using Paypal's Express Checkout. I read about Express Checkout on the Paypal site, but I still can't quite understand what it is, and how it's different from Website Payment Standard. Can anyone explain this in a simple way?

If anyone could answer even just one of these questions, I'd be very grateful!

**By the way, before it gets suggested, I have watched all of Ryan Bates' Paypal screencasts about Paypal, which are great for basics or buying items in a shopping cart, but I don't understand how it should work with recurring billing. Also, it seemed like he skipped some important steps in the video (e.g. the Paypal docs says after your app receives an IPN, you need to send back a confirmation of reception to Paypal, but Ryan does not do this in his screencast). I'm just trying to make sense of all this!

回答1:

Express Checkout is the same as Website Payments Standard. It is the method of redirecting your customers to PayPal to collect their payment info. There's a simple implementation of just creating a form that posts directly to PayPal, and you can optionally use IPN to get info about the transaction. There's also an API for Payments Standard, that lets you set up the transaction with PayPal behind the scenes, then redirect your customer to PayPal, then query PayPal via the API for details on the just-completed transaction. The SaaS Rails Kit (I'm the author of it) uses this API.

Website Payments Pro is PayPal's offering that lets you collect the payment info at your site and pass that info via their API to PayPal. You then get information about the transaction via the API. The customer never leaves your site. PayPal's TOS require you to offer Express Checkout even if you offer Payments Pro. Payments Pro costs $30 / mo. (as I recall) and requires you to fill out an application for a Pro account.



回答2:

First, does Paypal require a user to register for recurring billing with Website Payment Standard?

With Website Payment Standard, you direct your customers to fill out their information on paypal's site. to me, that's kind of cheesy, but your mileage may vary. If you are going to be making some money, it's well worth integrating it into your site and upgrading to Website payments Pro, imo.

I planned to use ActiveMerchant but I found some blogs that says ActiveMerchant doesn't support recurring billing from Paypal. is this true?

It doesn't out of the box, but you have to create a new Module class that gets added into Active Merchant, plus the views and really, it's a lot of work. No should say to you that it's easy to do, because they are either liars or really good at programming.

I found the SASS Rails Kit by railskits.com, which says it supports recurring billing with Paypal's Website Payments Standard. If I purchased this, would the code be clear enough to understand and implement in my own site, or is it kind of packaged deal for starter sites and not existing sites?

Sure, it may be clearer, but if i recall, they use a referential transaction to 'fake' recurring billing, as of this august, when i wrote my solution. As for existing sites, you may have to gerry rig it into your existing app, or create it around it. TBH, the $2XX price tag scared me off.

I found a lot of blog with help with recurring billing with ActiveMerchant, but using Paypal's Express Checkout. I read about Express Checkout on the Paypal site, but I still can't quite understand what it is, and how it's different from Website Payment Standard. Can anyone explain this in a simple way?

Paypal Express requires you to have your own merchant account. A merchant account is where your money will end up and is the only for your customer's bank account to speak to your bank account easily.

Website Payments Standard uses Paypal's own merchant Account through your Paypal Account, in order to pay you.

Again, imo, pay the 30 bucks and go with Website Payments Pro.



回答3:

We're also developing a subscription based site and this looks pretty interesting - http://chargify.com/. Could save quite a bit of coding time.



回答4:

If we are discussing how to do subscriptions using a Ruby on Rails /ActiveMerchant environment I am not sure why no one has brought up Freemium, which is a sister project to ActiveMerchant that focuses on subscriptions.



回答5:

I use the SaaS Railskit, and Highly recommend it. The code is clean, commented and legible. It can be dropped in to an existing app, with minimal tweaking, or used as the foundation for a new app. I suppose it work fine if you just wanted to use it as a reference, or stand-alone payment processing app.

Hope that helps!



回答6:

One other potential option is to hit one of the other recurring billing capable gateways like Authorize.net or BrainTree. I don't normally suggest Authorize.net because of their slightly gimpy development process (you have to request a test account if you want to do continual testing which takes about 2 days) but I've done integrations with them on several sites and it works reasonably well. Though they do have the same inane policy as PayPal of naming 19 products which all seem to do what you need but don't in reality.

The only bonus to this is that people don't have to be PayPal members in order to do the payment and I believe Authorize.net has lower fees but that may have just been our accounts; our sales guy was a killer negotiator.

active_merchant and the SaaS Railskit both support Authorize.net and BrainTree.

I wouldn't recommend buying the Railskit just to look at quality code that uses active_merchant though, I'm certain there are other places that you can look for free. Railskits are really designed to be used as a base and it's almost guaranteed to have a different set of assumptions about setup than you had planned on so if you've made it anywhere on your project merging the two would almost certainly be a pain. On the other hand, if you're still just starting the site the Railskit might well be a great way to start over with a really sane environment.



回答7:

If you're using Paypal subscriptions then you will probably need a Paypal business account. Nothing scary it's just a case of supplying a business name to paypal and requesting your existing account to be converted over.

I also looked through a few Paypal subscrition solutions for rails and eventually just created my own.

I've written it up here Adding PayPal subscriptions to your Rails App with 1 Controller.



回答8:

Question: First, does Paypal require a user to register for recurring billing with Website Payment Standard? Yes, I believe so. Paypal wants the user to be able to cancel the payments as needed.

Question: I planned to use ActiveMerchant but I found some blogs that says ActiveMerchant doesn't support recurring billing from Paypal. is this true? That's what I see, too. You can implement it through the Paypal SOAP interface, though. It's not too tough.

shameless plug:

I went through all the docs for Paypal and pulled out the good stuff for implementing standard and soap-based methods. You can find it for $8.50 on pragprog.com

/shameless plug: