Skip to content

Google API URL being resolved incorrectly for subscriptions #352

@grubstarstar

Description

@grubstarstar

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch in-app-purchase@1.11.4 for the project I'm working on.

getServices didn't work properly for GOOGLE because it was calling a property on a string.

Also for Google API, the URL was being resolved incorrectly for subscriptions and the code was using the purchase, rather than subscription URL.

Here is the diff that solved my problem:

diff --git a/node_modules/in-app-purchase/index.js b/node_modules/in-app-purchase/index.js
index 172f366..ae13179 100644
--- a/node_modules/in-app-purchase/index.js
+++ b/node_modules/in-app-purchase/index.js
@@ -98,7 +98,7 @@ module.exports.getService = function (receipt) {
         }
         if (parsed.signature) {
             return module.exports.GOOGLE;
-        } else if (receipt.purchaseToken) {
+        } else if (parsed.purchaseToken) {
             return module.exports.GOOGLE;
         } else {
             return module.exports.AMAZON;
diff --git a/node_modules/in-app-purchase/lib/googleAPI.js b/node_modules/in-app-purchase/lib/googleAPI.js
index a6ef57a..bebfb3d 100644
--- a/node_modules/in-app-purchase/lib/googleAPI.js
+++ b/node_modules/in-app-purchase/lib/googleAPI.js
@@ -167,14 +167,10 @@ function _getToken(clientEmail, privateKey, cb) {
 // receipt: { purchaseToken, subscription }
 function _getValidationUrl(receipt, token) {
     var url = '';
-    switch (receipt.subscription) {
-        case true:
-            url = SUBSCR_VAL;
-        break;
-        case false:
-        default:
-            url = PRODUCT_VAL;
-        break;
+    if(receipt.autoRenewing !== undefined) {
+        url = SUBSCR_VAL;
+    } else {
+        url = PRODUCT_VAL;
     }
     return util.format(
         url,

This issue body was partially generated by patch-package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions