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 withfirebase 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}
tohttps://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}
tohttps://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.