Example #1
0
 void OnQuerySkuDetailsResponse(List <AndroidJavaObject> skus, ProductDefinition productToBuy, Product oldProduct, int desiredProrationMode)
 {
     if (skus?.Count > 0)
     {
         AndroidJavaObject sku = skus[0];
         VerifyAndWarnIfMoreThanOneSku(skus, sku);
         AndroidJavaObject billingResult = m_BillingClient.LaunchBillingFlow(sku, oldProduct?.definition?.storeSpecificId, oldProduct?.transactionID, desiredProrationMode);
         HandleBillingFlowResult(new GoogleBillingResult(billingResult), sku);
     }
     else
     {
         m_GooglePurchaseCallback.OnPurchaseFailed(
             new PurchaseFailureDescription(
                 productToBuy.id,
                 PurchaseFailureReason.ProductUnavailable,
                 "SKU does not exist in the store."
                 )
             );
     }
 }
Example #2
0
 void HandleErrorCases(IGoogleBillingResult billingResult, IEnumerable <AndroidJavaObject> purchases)
 {
     if (!purchases.Any())
     {
         if (billingResult.responseCode == GoogleBillingResponseCode.ItemAlreadyOwned)
         {
             m_GooglePurchaseCallback.OnPurchaseFailed(
                 new PurchaseFailureDescription(
                     m_LastKnownProductService.GetLastKnownProductId(),
                     PurchaseFailureReason.DuplicateTransaction,
                     billingResult.debugMessage
                     )
                 );
         }
         else if (billingResult.responseCode == GoogleBillingResponseCode.UserCanceled)
         {
             m_GooglePurchaseCallback.OnPurchaseFailed(
                 new PurchaseFailureDescription(
                     m_LastKnownProductService.GetLastKnownProductId(),
                     PurchaseFailureReason.UserCancelled,
                     billingResult.debugMessage
                     )
                 );
         }
         else
         {
             m_GooglePurchaseCallback.OnPurchaseFailed(
                 new PurchaseFailureDescription(
                     m_LastKnownProductService.GetLastKnownProductId(),
                     PurchaseFailureReason.Unknown,
                     billingResult.debugMessage + " {M: GPUL.HEC} - Response Code = " + billingResult.responseCode
                     )
                 );
         }
     }
     else
     {
         ApplyOnPurchases(purchases, billingResult, OnPurchaseFailed);
     }
 }
Example #3
0
 void HandleErrorCases(GoogleBillingResult billingResult, AndroidJavaObject purchasesList)
 {
     if (purchasesList == null)
     {
         if (billingResult.responseCode == BillingClientResponseEnum.ITEM_ALREADY_OWNED())
         {
             m_GooglePurchaseCallback.OnPurchaseFailed(
                 new PurchaseFailureDescription(
                     m_LastKnownProductService.GetLastKnownProductId(),
                     PurchaseFailureReason.DuplicateTransaction,
                     billingResult.debugMessage
                     )
                 );
         }
         else if (billingResult.responseCode == BillingClientResponseEnum.USER_CANCELED())
         {
             m_GooglePurchaseCallback.OnPurchaseFailed(
                 new PurchaseFailureDescription(
                     m_LastKnownProductService.GetLastKnownProductId(),
                     PurchaseFailureReason.UserCancelled,
                     billingResult.debugMessage
                     )
                 );
         }
         else
         {
             m_GooglePurchaseCallback.OnPurchaseFailed(
                 new PurchaseFailureDescription(
                     m_LastKnownProductService.GetLastKnownProductId(),
                     PurchaseFailureReason.Unknown,
                     billingResult.debugMessage + " {M: GPUL.HEC}"
                     )
                 );
         }
     }
     else
     {
         ApplyOnPurchases(purchasesList, billingResult, OnPurchaseFailed);
     }
 }