diff --git a/website/server/controllers/top-level/payments/iap.js b/website/server/controllers/top-level/payments/iap.js index 39817c6db5..e7375d9954 100644 --- a/website/server/controllers/top-level/payments/iap.js +++ b/website/server/controllers/top-level/payments/iap.js @@ -54,12 +54,26 @@ api.iapAndroidVerify = { userId: user._id, }); - await payments.buyGems({ - user, - paymentMethod: 'IAP GooglePlay', - amount: 5.25, - headers: req.headers, - }); + switch (purchaseData.productId) { + case 'com.habitrpg.android.habitica.iap.4gems': + await payments.buyGems({user, paymentMethod: 'IAP GooglePlay', amount: 1, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop + break; + + case 'com.habitrpg.android.habitica.iap.20gems': + case 'com.habitrpg.android.habitica.iap.21gems': + await payments.buyGems({user, paymentMethod: 'IAP GooglePlay', amount: 5.25, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop + break; + case 'com.habitrpg.android.habitica.iap.42gems': + await payments.buyGems({user, paymentMethod: 'IAP GooglePlay', amount: 10.5, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop + break; + case 'com.habitrpg.android.habitica.iap.84gems': + await payments.buyGems({user, paymentMethod: 'IAP GooglePlay', amount: 21, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop + break; + default: + correctReceipt = false; + } + + if (!correctReceipt) throw new Error('INVALID_ITEM_PURCHASED'); res.respond(200, googleRes); }, @@ -118,9 +132,6 @@ api.iapiOSVerify = { case 'com.habitrpg.ios.Habitica.4gems': await payments.buyGems({user, paymentMethod: 'IAP AppleStore', amount: 1, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop break; - case 'com.habitrpg.ios.Habitica.8gems': - await payments.buyGems({user, paymentMethod: 'IAP AppleStore', amount: 2, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop - break; case 'com.habitrpg.ios.Habitica.20gems': case 'com.habitrpg.ios.Habitica.21gems': await payments.buyGems({user, paymentMethod: 'IAP AppleStore', amount: 5.25, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop @@ -128,6 +139,9 @@ api.iapiOSVerify = { case 'com.habitrpg.ios.Habitica.42gems': await payments.buyGems({user, paymentMethod: 'IAP AppleStore', amount: 10.5, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop break; + case 'com.habitrpg.ios.Habitica.84gems': + await payments.buyGems({user, paymentMethod: 'IAP AppleStore', amount: 21, headers: req.headers}); // eslint-disable-line babel/no-await-in-loop + break; default: correctReceipt = false; }