Stripe is a popular credit card processor available in countries world-wide. If you're looking to take credit cards, bitcoin, or Alipay (in China) then you should absolutely look at Stripe.

I've written quite extensively about how to use Stripe with Ruby on Rails applications, including a smattering of articles (see below), a book named Mastering Modern Payments: Using Stripe with Rails, and Payola, an open source Rails engine that provides a common-sense, asynchronous approach to integrating Stripe.

Let's say that instead of running a Software as a Service, you're actually building and shipping physical products. Let's say quadcopter kits. People come to your website, buy a quadcopter kit, and then you build it and ship it to them. It takes you a few days to build the kit, though, and you would rather not charge the customer until you ship. Traditionally Stripe has been focused on paying for online services but recently they added the ability to authorize and capture payments in two steps. In this post we're going to explore billing with Stripe and shipping with EasyPost with separate charge and capture.

Three months ago I decided to write my first technical book and it's earned me over $5,000 in the two weeks since launch day, so I thought I decided to share what I've learned.

I had been reading Nathan Barry's excellent book Authority and something about it inspired me. I started throwing around ideas, things that I knew well and that weren't well covered already, and I turned up Stripe. I know Stripe very well having used it for a bunch of projects in the past few years. I also know Rails, using it in most of those projects plus at my day job. I knew for sure that there were things about payment processing that weren't really talked about much in the 10 minute Stripe tutorials. Thus began my five month journey of writing and self-publishing Mastering Modern Payments: Using Stripe with Rails.

One of the most common issues that shows up in the #stripe IRC channel is people setting up their front-end Stripe Checkout integration and then expecting a charge to show up, which isn't really how Stripe works. In this post I'm going to walk through a one-off Stripe charge and hopefully illustrate how the whole process comes together.

Stripe provides a gorgeous pre-built credit card form called Stripe Checkout. Checkout is mainly intended for one-off purchses like Dribbble or my book. Many people want to use it for their Stripe-powered subscription sites so in this article I'm going to present a good way of doing that.

Say you want to give a customer an account credit for some reason. They're an especially good customer, or your service was down for a few minutes and you want to give service credits, or some other reason. You can do this using Stripe's account_balance feature.

A few weeks ago I introduced Payola, a drop-in Rails engine for setting up Stripe billing. Since that time, it's gained over 400 stars on GitHub and the gem has been downloaded almost 2000 times. The most requested feature, subscripton payments, is well on it's way to being completed.

Payola is more than just a checkout button. It has hooks at various points in the payment flow that let you take action and tie Payola into your application to do things like manipulate the sale object before the charge happens or override the low-level arguments that Payola sends to Stripe. It also has a rich set of notifications when payments complete, fail, or are refunded. In this post, we're going to build a simple extension that sends push notifications when someone buys a product.