Skip to content
Branch: master
Find file History
Pull request Compare This branch is 10 commits ahead, 172 commits behind Node-8.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
functions Upgrade all firebase-admin imports to 5.11.0 Apr 3, 2018
public Auto-update dependencies. (#509) Jan 4, 2019
firebase.json Added process URL Oct 4, 2017

Accept PayPal payment in functions firebase

This sample demonstrates how to use the Paypal-rest-sdk with a Google CLoud Functions.

Functions Code

See file functions/index.js for the code.

The dependencies are listed in functions/package.json.

Process PayPal payments

  1. Set up a payment information object that contains details about the PayPal payment.

  2. Initialize the payment and redirect the user. To do so, send the payment object to PayPal. This action provides a redirect URL to which to redirect the user. After the user confirms the payment, PayPal redirects the user to the return URLs specified in the payment object.

  3. Complete the payment. Use the payer and payment IDs provided in the query string following the redirect.

Setting up the sample

  1. Create a Firebase project on the Firebase application console.

  2. Enable billing on your Firebase 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.

  3. Clone or download this repo and open the paypal directory.

  4. You must have the Firebase CLI installed. If you don't have it install it with npm install -g firebase-tools and then configure it with firebase login.

  5. Configure the CLI locally by using firebase use --add and select your project in the list.

  6. Create a Paypal REST API app and note your Client ID and Client Secret.

  7. Setup your Paypal API Client ID and Secret in your Cloud Function. Run in the command line:

    firebase functions:config:set paypal.client_id="yourPaypalClientID"
    firebase functions:config:set paypal.client_secret="yourPaypalClientSecret"
  8. Install dependencies locally by running: cd functions; npm install; cd -

Deploy and test

This sample comes with a web-based UI. To test locally do:

  1. Start serving your project locally using firebase serve --only hosting,functions
  2. Send a POST request with body {price:5} to https://localhost:5000/pay. You will get a 302 Redirect redirecting to the payment page.

To deploy and test on prod do:

  1. Deploy your project using firebase deploy
  2. Send a POST request with body {price:5} to https://us-central1-<project-id> You will get a 302 Redirect redirecting to the payment page.


We'd love that you contribute to the project. Before doing so please read our Contributor guide.


© Google, 2017. Licensed under an Apache-2 license.

You can’t perform that action at this time.