Something else that's a bit different is that you have to create an invoice/order number to send along to Coinbase, then mark that invoice as paid later. With Braintree/Stripe, the server makes a call to the service with the amount to charge and it gets back a success or fail which I can then immediately display to the user showing that the purchase went through.
With Coinbase I haven't found a way to have that tightly integrated experience.