Skip to content
This repository was archived by the owner on Aug 8, 2022. It is now read-only.

stripe-archive/firebase-mobile-payments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project is inactive and is no longer being maintained.

Firebase mobile payments: Android & iOS with Cloud Functions for Firebase

This example includes Firebase Cloud Functions to create payments in native Android and iOS (coming soon) applications.

Features:

  • Android client
  • iOS SwiftUI client
  • Functions
    • Create a customer object when a users signs up via Firebase Authentication and add a customer entry to Cloud Firestore: createStripeCustomer
    • Callable functions to create a short-lived ephemeral keys for the SDK's prebuilt UI components: createEphemeralKey
    • Function to create a PaymentIntent when a new payment doc is added to Cloud Firestore: createStripePayment
    • Webhook handler function to keep Cloud Firestore in sync with Stripe: handleWebhookEvents
    • When a user is deleted from Firebase Authentication, delete thir data in Cloud Firestore and their customer object in Stripe: cleanupUser
Video tutorial: Android Link to video tutorial

Recommended usage

Please note that when selling digital products or services within your app, (e.g. subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use the app store's in-app purchase APIs instead. See Apple's and Google's guidelines for more information.

Deploy and test

  • Create a Firebase Project using the Firebase Developer Console
  • Enable billing on your project by switching to the Blaze or Flame plan. See pricing for more details. This is required to be able to do requests to non-Google services.
  • Enable Google & Email sign-in in your authentication provider settings.
  • Install Firebase CLI Tools if you have not already and log in with firebase login.
  • Configure this sample to use your project using firebase use --add and select your project.
  • Install dependencies locally by running: cd functions; npm install; cd -
  • Add your Stripe API Secret Key to Firebase config:
    firebase functions:config:set stripe.secret=<YOUR STRIPE SECRET KEY>
  • Deploy your project using cd functions; npm run deploy; cd -

Setting up webhooks

  • Run firebase open functions to open the Firebase console.
  • Copy the URL for the handleWebhookEvents functions (e.g. https://region-project-name.cloudfunctions.net/handleWebhookEvents)
  • Create a new webhook endpoint with the URL in the Stripe Dashboard
  • Copy the signing secret (whsec_xxx) and add it to Firebase config:
    firebase functions:config:set stripe.webhooksecret=<YOUR WEBHOOK SECRET>
  • Redeploy the handleWebhookEvents function: firebase deploy --only functions:handleWebhookEvents

Accepting live payments

Once you’re ready to go live, you will need to exchange your test keys for your live keys. See the Stripe docs for further details.

  • Update your Stripe secret config:
    firebase functions:config:set stripe.secret=<YOUR STRIPE LIVE SECRET KEY>
  • Set your live publishable key in your respective client integration.
  • Follow the Setting up webhooks from above for live mode.
  • Redeploy the functions for the changes to take effect cd functions; npm run deploy; cd -.

Authors

About

Firebase Cloud Functions to create payments in native Android and iOS applications.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy