Skip to content

Latest commit

 

History

History
64 lines (36 loc) · 3.04 KB

File metadata and controls

64 lines (36 loc) · 3.04 KB

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 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>.cloudfunctions.net/pay. You will get a 302 Redirect redirecting to the payment page.

Contributing

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

License

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