voltrue2 / in-app-purchase

A Node.js module for in-App-Purchase for iOS, Android, Amazon and Windows.
http://iap.gracenode.org
Other
1.04k stars 287 forks source link

Google API URL being resolved incorrectly for subscriptions #352

Open grubstarstar opened 2 years ago

grubstarstar commented 2 years ago

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.

pierroo commented 1 year ago

Any news on this issue? Is this issue still happening without patch package?