Accept PayPal payment in functions firebase
This sample demonstrates how to use the Paypal-rest-sdk with a Google Cloud Functions.
See file
functions/index.js
for the code.
The dependencies are listed in
functions/package.json
.
-
Set up a payment information object
that contains details about the PayPal payment.
-
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.
-
Complete the payment
. Use the payer and payment IDs provided in the query string following the redirect.
-
Create a Firebase project on the
Firebase application console
.
-
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.
-
Clone or download this repo and open the
paypal
directory.
-
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
.
-
Configure the CLI locally by using
firebase use --add
and select your project in the list.
-
Create a Paypal REST API app
and note your
Client ID
and
Client Secret
.
-
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
"
-
Install dependencies locally by running:
cd functions; npm install; cd -
This sample comes with a web-based UI.
To test locally do:
- Start serving your project locally using
firebase serve --only hosting,functions
- 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:
- Deploy your project using
firebase deploy
- 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.
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.