From c9a240ef1c6c73cd952bb1886e6059b9016553a0 Mon Sep 17 00:00:00 2001 From: Mike Diarmid Date: Mon, 5 Aug 2019 18:38:20 +0100 Subject: [PATCH 1/4] [gcp/firebase] use rawBody on IPN sample --- javascript/googlecloudfunctions.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/javascript/googlecloudfunctions.js b/javascript/googlecloudfunctions.js index 84ba618..54e03a8 100644 --- a/javascript/googlecloudfunctions.js +++ b/javascript/googlecloudfunctions.js @@ -42,10 +42,8 @@ exports.ipnHandler = function ipnHandler(req, res) { // JSON object of the IPN message consisting of transaction details. let ipnTransactionMessage = req.body; - // Convert JSON ipn data to a query string since Google Cloud Function does not expose raw request data. - let formUrlEncodedBody = querystring.stringify(ipnTransactionMessage); // Build the body of the verification post message by prefixing 'cmd=_notify-validate'. - let verificationBody = `cmd=_notify-validate&${formUrlEncodedBody}`; + let verificationBody = `cmd=_notify-validate&${req.rawBody}`; console.log(`Verifying IPN: ${verificationBody}`); From 7ba2ea5f79d064db7e491eb3f5f44afb0674228f Mon Sep 17 00:00:00 2001 From: Mike Diarmid Date: Mon, 5 Aug 2019 18:49:28 +0100 Subject: [PATCH 2/4] remove unused import --- javascript/googlecloudfunctions.js | 1 - 1 file changed, 1 deletion(-) diff --git a/javascript/googlecloudfunctions.js b/javascript/googlecloudfunctions.js index 54e03a8..3a9f7d7 100644 --- a/javascript/googlecloudfunctions.js +++ b/javascript/googlecloudfunctions.js @@ -2,7 +2,6 @@ * Sample PayPal IPN Listener implemented for Google Clound Functions. */ -const querystring = require("querystring"); const request = require("request"); /** From 4e7d20f2c78f1d0f9acde8ccdc38f190fb5da113 Mon Sep 17 00:00:00 2001 From: Mike Diarmid Date: Mon, 5 Aug 2019 19:01:20 +0100 Subject: [PATCH 3/4] fix typo --- javascript/googlecloudfunctions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/googlecloudfunctions.js b/javascript/googlecloudfunctions.js index 3a9f7d7..ab3dcd7 100644 --- a/javascript/googlecloudfunctions.js +++ b/javascript/googlecloudfunctions.js @@ -1,5 +1,5 @@ /** - * Sample PayPal IPN Listener implemented for Google Clound Functions. + * Sample PayPal IPN Listener implemented for Google Cloud Functions. */ const request = require("request"); From 4bbbc0b3db43d9ffbd1b4fc708e8845dd4c054f5 Mon Sep 17 00:00:00 2001 From: Mike Diarmid Date: Mon, 5 Aug 2019 19:03:47 +0100 Subject: [PATCH 4/4] fix typos --- javascript/googlecloudfunctions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/googlecloudfunctions.js b/javascript/googlecloudfunctions.js index ab3dcd7..8e338ec 100644 --- a/javascript/googlecloudfunctions.js +++ b/javascript/googlecloudfunctions.js @@ -66,10 +66,10 @@ exports.ipnHandler = function ipnHandler(req, res) { `Invalid IPN: IPN message for Transaction ID: ${ipnTransactionMessage.txn_id} is invalid.` ); } else { - console.error("Unexpected reponse body."); + console.error("Unexpected response body."); } } else { - // Error occured while posting to PayPal. + // Error occurred while posting to PayPal. console.error(error); console.log(body); }