We're the guys that got the original Braintree plugin developed by awareim. There's a lot to consider on this topic, so I will try and give you our reasoning and then you need to lay your own needs and situation over the the top.
First our situation...
We had the Braintree plugin developed a few years ago. We had previously used PayPal for a subscription saas aware system we developed. PayPal did ok but it had a few issues we didn't like...
With PayPal if you set up a subscription, you can't vary the amount of the subscription by more than 15%, without them re entering their credit card details again. We had an entry price of $19 per month for 1-3 users, when they went up to 4 users the price goes up to $49 per month... With PayPal we could not change the price without the customer intervention.
You have to leave our site and go to PayPal to do the transaction. It's ok but we wanted it more tightly integrated. Plus the return success in Aware never really worked properly.
You don't actually get the credit card details. You DO want to know expiry dates of cards, cause users need to update details, you need to prompt, but you don't know the dates. You only knows when the transaction fails, too late.
If the payment fails, you get an email. They try 5 times, then the subscription is cancelled. It's a pain to manage, it's outside your app, so it's manual.
We kinda hated PayPal by the end of it, so we started to look around. This was before PayPal bought Braintre. So we got the Braintree plugin developed.
It's a simple plugin, you really only need two features and the plugin does it....
- Add a customer into the vault, get a token
- Send a charge transaction to customer in the vault using a token, get a success or fail
You manage all the billing logic in aware, you keep exp dates, you can change the amounts as you need, you use all your own forms. The plugin works great to do that. Yes you can't take PayPal as a payment method (not an issue for us, have a think about if you really need to offer PayPal, I would guess no at least as a starting point).
Now the bad side of Braintree....
Check the requirements in your country to get an account, in Australia (where we are based) you must have a merchant account, and if you think getting a PayPal business account is a pain, a merchant account is a lot worse (we had to provide a business plan and financial projections)
Currencies. Our Braintree account provides only for Australian dollars. This is a pain, we want to launch in Asia, UK, USA in LOCAL currency. Can't do it easily within Braintree, we have to open a merchant account in each currency. (PayPal by far has the largest selection of currencies).
Prices have gone up since PayPal bought them, such is life.
So here is the situation for us...
We're re launching a product, but we really want to push it into other countries, so we're actually considering moving back to PayPal. (Can you believe it!)
Plus we're considering changing our charging method, our thinking is we can simplify our billing process by moving away from an automatic deduction method on the monthly anniversary. Basically we will have our system calculate a"date paid to" for the customer, they buy 1, 3, 6 or twelve months in advance, that sets the date paid to. If this falls behind current date they can't login without making a payment. This is what our accounting system does, it's simple and effective, but it does have an issue if people don't pay for 5 months and then try and login. Also if they just buy monthly they have to keep re entering credit card details.
In summary....
The current Braintree plugin is good, I really don't think you need to develop it further IF you're happy with Braintree issues . But really think through your fee and charging structure, there may be a better way.