-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAmazonIAP.js
8 lines (8 loc) · 4.51 KB
/
AmazonIAP.js
1
2
3
4
5
6
7
8
TVA.AmazonIAP={};TVA.AmazonIAP.purchaseSuccessCB=function(){};TVA.AmazonIAP.init=function(entitlementInfo,purchaseSuccessCB){if(purchaseSuccessCB){TVA.AmazonIAP.purchaseSuccessCB=purchaseSuccessCB;}
TVA.AmazonIAP.setWindowError();TVA.AmazonIAP.activeState=false;TVA.AmazonIAP.amzn_wa=amzn_wa;TVA.AmazonIAP.purchaseItemButtonPressed=false;TVA.AmazonIAP.state={entitlementInfo:[],lastPurchaseCheckTime:null,revokedSKUs:[]};if(entitlementInfo){TVA.AmazonIAP.state.entitlementInfo=entitlementInfo}
this.onSdkAvailable=function(resp){if(resp.isSandboxMode){console.log("Running in test mode");}
var offset=TVA.AmazonIAP.state.lastPurchaseCheckTime!==null?TVA.AmazonIAP.state.lastPurchaseCheckTime:TVA.AmazonIAP.amzn_wa.IAP.Offset.BEGINNING;TVA.AmazonIAP.amzn_wa.IAP.getPurchaseUpdates(offset);};this.onGetUserIdResponse=function(a){};this.onItemDataResponse=function(data){if(data.itemDataRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.ItemDataStatus.SUCCESSFUL){}else if(data.itemDataRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.ItemDataStatus.FAILED){alert("Failed to fetch items");}else if(data.itemDataRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.ItemDataStatus.SUCCESSFUL_WITH_UNAVAILABLE_SKUS){alert("Unavailable SKUs");}
}.bind(this);this.onPurchaseResponse=function(data){this.handleOnPurchaseResponse(data);}.bind(this);this.onPurchaseUpdatesResponse=function(resp){this.handleOnPurchaseUpdatesResponse(resp);}.bind(this);TVA.log('SETTING UP IAP CALLBACKS');if(TVA.AmazonIAP.amzn_wa.IAP===null||TVA.AmazonIAP.amzn_wa.IAP===undefined){TVA.log("Amazon In-App-Purchasing only works with Apps from the Appstore");}else{TVA.log("Register registerObserver");TVA.AmazonIAP.amzn_wa.IAP.registerObserver({'onSdkAvailable':this.onSdkAvailable,'onGetUserIdResponse':this.onGetUserIdResponse,'onItemDataResponse':this.onItemDataResponse,'onPurchaseResponse':this.onPurchaseResponse,'onPurchaseUpdatesResponse':this.onPurchaseUpdatesResponse});}
};TVA.AmazonIAP.purchaseItem=function(id,error){TVA.AmazonIAP.getItemData();TVA.AmazonIAP.amzn_wa.IAP.getUserId();var offset=TVA.AmazonIAP.state.lastPurchaseCheckTime!==null?TVA.AmazonIAP.state.lastPurchaseCheckTime:TVA.AmazonIAP.amzn_wa.IAP.Offset.BEGINNING;TVA.AmazonIAP.amzn_wa.IAP.getPurchaseUpdates(offset);TVA.AmazonIAP.purchaseItemButtonPressed=true;TVA.AmazonIAP.sslCallBack=error?error:null;if(TVA.AmazonIAP.amzn_wa.IAP===null){alert("You cannot buy this button, Amazon In-App-Purchasing works only with Apps from the Appstore.");}else{TVA.AmazonIAP.amzn_wa.IAP.purchaseItem(id);}};TVA.AmazonIAP.handleReceipt=function(receipt){for(var i=0;i<TVA.AmazonIAP.state.entitlementInfo.length;i++){if(receipt.sku===TVA.AmazonIAP.state.entitlementInfo[i][0]){TVA.AmazonIAP.state.entitlementInfo[i][1]=true;}}};TVA.AmazonIAP.handleOnPurchaseUpdatesResponse=function(e){if(e.receipts){for(var i=0;i<e.receipts.length;i++){if(e.purchaseUpdatesRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.PurchaseUpdatesStatus.SUCCESSFUL){this.handleReceipt(e.receipts[i]);}else if(e.purchaseUpdatesRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.PurchaseUpdatesStatus.FAILED){alert("We were unable to complete your purchase request");}}}};TVA.AmazonIAP.handleOnPurchaseResponse=function(e){var offset=TVA.AmazonIAP.state.lastPurchaseCheckTime!==null?TVA.AmazonIAP.state.lastPurchaseCheckTime:TVA.AmazonIAP.amzn_wa.IAP.Offset.BEGINNING;if(e.purchaseRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.PurchaseStatus.SUCCESSFUL){TVA.AmazonIAP.amzn_wa.IAP.drainItem();this.purchaseSuccessCB(e);}else if(e.purchaseRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.PurchaseStatus.ALREADY_ENTITLED){TVA.AmazonIAP.amzn_wa.IAP.getPurchaseUpdates(offset);}else if(e.purchaseRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.PurchaseStatus.FAILED){if(TVA.AmazonIAP.purchaseItemButtonPressed){alert("We were unable to complete your purchase request");}else{console.log("Purchase request from previous session returned a failure response");}}else if(e.purchaseRequestStatus===TVA.AmazonIAP.amzn_wa.IAP.PurchaseStatus.INVALID_SKU){alert("Invalid SKU");}
TVA.AmazonIAP.amzn_wa.IAP.getPurchaseUpdates(e.purchaseRequestStatus);};TVA.AmazonIAP.getItemData=function(){TVA.AmazonIAP.amzn_wa.IAP.getItemData(["ticket_bundle_5"]);};TVA.AmazonIAP.active=function(){return TVA.AmazonIAP.activeState};TVA.AmazonIAP.keyDown=function(keyCode){};TVA.AmazonIAP.setWindowError=function(){var tmpFunc=window.onerror;window.onerror=function(f,e,c){if(f.indexOf('Invalid use of IAP')>-1){var message='IAP is not available on unsecured Apps.';TVA.AmazonIAP.sslCallBack&&TVA.AmazonIAP.sslCallBack(message);TVA.AmazonIAP.sslCallBack=null;}
tmpFunc&&tmpFunc(f,e,c);return false};};