Quantcast
Channel: Questions in topic: "iap"
Viewing all articles
Browse latest Browse all 595

Unity IAP Slow Card Handling

$
0
0
I am using Unity IAP 4.1.4.
As you know there are 4 different test cards on purchase testing. My question is what should I do when payment is slow? If user quits the game before payment validated I can't approve the payment and purchase is pending. Is there any way to handle slow payments?
public class IAPManager : MonoBehaviour { private string coin250k = "//"; private string coin500k = "//"; public void OnPurchaseComplete(Product product) { var validator = new CrossPlatformValidator(GooglePlayTangle.Data(), AppleTangle.Data(), Application.identifier); bool ValidPurchase = false; try { // On Google Play, result has a single product ID. // On Apple stores, receipts contain multiple products. var result = validator.Validate(product.receipt); // For informational purposes, we list the receipt(s) Debug.Log("Receipt is valid. Contents:"); foreach (IPurchaseReceipt productReceipt in result) { Debug.Log(productReceipt.productID); Debug.Log(productReceipt.purchaseDate); Debug.Log(productReceipt.transactionID); GooglePlayReceipt google = productReceipt as GooglePlayReceipt; if (null != google) { // This is Google's Order ID. // Note that it is null when testing in the sandbox // because Google's sandbox does not provide Order IDs. ValidPurchase = true; Debug.Log(" google transaction" + google.transactionID); Debug.Log(" google transaction" + google.purchaseState); Debug.Log(" google transaction" + google.purchaseToken); } AppleInAppPurchaseReceipt apple = productReceipt as AppleInAppPurchaseReceipt; if (null != apple) { ValidPurchase = true; Debug.Log(" apple transaction1" + apple.originalTransactionIdentifier); Debug.Log(" apple transaction2" + apple.subscriptionExpirationDate); Debug.Log(" apple transaction3" + apple.cancellationDate); Debug.Log(" apple transaction4" + apple.quantity); } } } catch (IAPSecurityException) { Debug.Log("Invalid receipt, not unlocking content"); ValidPurchase = false; } //product.receipt; if (ValidPurchase) { if (product.definition.id == coin250k) { // } else if (product.definition.id == coin500k) { // } } } public void OnPurchaseFailed(Product product, PurchaseFailureReason reason) { Debug.Log(product.definition.id + " failed because: "+ reason); } }

Viewing all articles
Browse latest Browse all 595

Trending Articles