/stripe-connect-rocketrides

Sample on-demand platform built on Stripe: Connect onboarding for pilots, iOS app for passengers to request rides.

Primary LanguageSwiftMIT LicenseMIT

Rocket Rides: Stripe Connect demo

Rocket Rides is a sample on-demand platform that offers passengers rides with pilots, built on top of Stripe Connect, Connect Express, and the Stripe iOS SDK.

You can try the web app live on rocketrides.io.

This repository contains two components:

Web onboarding for pilots

Rocket Rides showcases how to sign up pilots and use Connect Express accounts to get them paid. Express provides onboarding, account management, an account dashboard, and identity verification for your platform, and we've customized Express with Rocket Rides branding.

This platform also uses the Stripe API to create payments for pilots, fetch their available and pending balance, and let them view transfers. It also creates Instant Payouts for pilots who use a debit card as their payout account.

To integrate Stripe Connect in your own app, check out these two files in particular:

  1. server/routes/pilots/stripe.js shows how to easily create Connect Express accounts and interact with the Stripe API.
  2. server/routes/pilots/pilots.js shows how to create payments going straight to pilots.

Requirements

You'll need a Stripe account to manage pilot onboarding and payments. Sign up for free, then enable Connect by filling in your Platform Settings. In the Development section, enter the following in the Redirect URIs field: http://localhost:3000/pilots/stripe/token.

For Instant Payouts to work, you'll need to turn off automatic payouts in your settings.

You'll need to have Node.js >= 7.x and MongoDB installed to run this app.

Getting started

Install dependencies using npm (or yarn):

cd server
npm install

Copy the configuration file and add your own Stripe API keys and client ID:

cp config.default.js config.js

Make sure MongoDB is running. If you're using Homebrew on macOS:

brew services start mongodb

Run the app:

npm start

Go to http://localhost:3000 in your browser to start using the app.

iOS app for passengers

The Rocket Rides iOS app is written in Swift and is built using the Stripe iOS SDK to accept both card payments and Apple Pay.

Requirements

This project is written in Swift and requires Xcode 8 to build and run, and CocoaPods to install the dependencies. The app is compatible with iOS 10.0+. You can use it both the iOS Simulator or on your iPhone.

Getting started

To get started, install the dependencies using CocoaPods:

cd ios
pod install

Open RocketRides.xcworkspace (not RocketRides.xcodeproj) in Xcode. Build and run the app!

To try out the full payment experience, run the server locally as described above, then follow these steps:

  1. Create a new pilot using the Rocket Rides web onboarding.
  2. Fill in the publishableKey property in AppDelegate.swift. You can find your publishable key in your Stripe Dashboard.
  3. Fill in the baseURLString property in AppDelegate.swift. This should be http://localhost:3000 if you haven't modified the server configuration.
  4. Relaunch the app! Tapping on "Payment" and "Price" should now work.
  5. Enter a destination, your payment option, and request a ride! You should see the payment in your Stripe Dashboard.

Credits