Browse Source

Merge pull request #504 from ricardoalcantara/mono_android_iap

Android IAP Response Code can now return null.
Aaron Franke 5 năm trước cách đây
mục cha
commit
b5d4b277f4

+ 1 - 1
mobile/android_iap/iap_demo.gd

@@ -116,7 +116,7 @@ func _on_QuerySkuDetailsButton_pressed():
 func _on_PurchaseButton_pressed():
 func _on_PurchaseButton_pressed():
 	var response = payment.purchase(TEST_ITEM_SKU)
 	var response = payment.purchase(TEST_ITEM_SKU)
 	if response.status != OK:
 	if response.status != OK:
-		show_alert("Purchase error %d: %s" % [response.response_code, response.debug_message])
+		show_alert("Purchase error %s: %s" % [response.response_code, response.debug_message])
 
 
 
 
 func _on_ConsumeButton_pressed():
 func _on_ConsumeButton_pressed():

+ 2 - 2
mono/android_iap/GodotGooglePlayBilling/BillingResult.cs

@@ -51,7 +51,7 @@ namespace Android_Iap.GodotGooglePlayBilling
             try
             try
             {
             {
                 Status = (int)billingResult["status"];
                 Status = (int)billingResult["status"];
-                ResponseCode = (billingResult.Contains("response_code") ? (BillingResponseCode)billingResult["response_code"] : BillingResponseCode.Ok);
+                ResponseCode = (billingResult.Contains("response_code") ? (BillingResponseCode?)billingResult["response_code"] : null);
                 DebugMessage = (billingResult.Contains("debug_message") ? (string)billingResult["debug_message"] : null);
                 DebugMessage = (billingResult.Contains("debug_message") ? (string)billingResult["debug_message"] : null);
             }
             }
             catch (System.Exception ex)
             catch (System.Exception ex)
@@ -61,7 +61,7 @@ namespace Android_Iap.GodotGooglePlayBilling
         }
         }
 
 
         public int Status { get; set; }
         public int Status { get; set; }
-        public BillingResponseCode ResponseCode { get; set; }
+        public BillingResponseCode? ResponseCode { get; set; }
         public string DebugMessage { get; set; }
         public string DebugMessage { get; set; }
     }
     }
 }
 }

+ 8 - 8
mono/android_iap/Main.cs

@@ -99,11 +99,11 @@ namespace Android_Iap
             var result = _googlePlayBilling.Purchase("android.test.purchased");
             var result = _googlePlayBilling.Purchase("android.test.purchased");
             if (result != null && result.Status == (int)Error.Ok)
             if (result != null && result.Status == (int)Error.Ok)
             {
             {
-                GD.Print("Bought");
+                GD.Print("Purchase Requested");
             }
             }
             else
             else
             {
             {
-                GD.Print("Failed");
+                GD.Print($"Purchase Failed {result.ResponseCode} {result.DebugMessage}");
             }
             }
         }
         }
 
 
@@ -112,11 +112,11 @@ namespace Android_Iap
             var result = _googlePlayBilling.Purchase("android.test.canceled");
             var result = _googlePlayBilling.Purchase("android.test.canceled");
             if (result != null && result.Status == (int)Error.Ok)
             if (result != null && result.Status == (int)Error.Ok)
             {
             {
-                GD.Print("Bought");
+                GD.Print("Purchase Requested");
             }
             }
             else
             else
             {
             {
-                GD.Print("Failed");
+                GD.Print($"Purchase Failed {result.ResponseCode} {result.DebugMessage}");
             }
             }
         }
         }
         private void OnButton2_pressed()
         private void OnButton2_pressed()
@@ -124,11 +124,11 @@ namespace Android_Iap
             var result = _googlePlayBilling.Purchase("android.test.refunded");
             var result = _googlePlayBilling.Purchase("android.test.refunded");
             if (result != null && result.Status == (int)Error.Ok)
             if (result != null && result.Status == (int)Error.Ok)
             {
             {
-                GD.Print("Bought");
+                GD.Print("Purchase Requested");
             }
             }
             else
             else
             {
             {
-                GD.Print("Failed");
+                GD.Print($"Purchase Failed {result.ResponseCode} {result.DebugMessage}");
             }
             }
         }
         }
         private void OnButton3_pressed()
         private void OnButton3_pressed()
@@ -136,11 +136,11 @@ namespace Android_Iap
             var result = _googlePlayBilling.Purchase("android.test.item_unavailable");
             var result = _googlePlayBilling.Purchase("android.test.item_unavailable");
             if (result != null && result.Status == (int)Error.Ok)
             if (result != null && result.Status == (int)Error.Ok)
             {
             {
-                GD.Print("Bought");
+                GD.Print("Purchase Requested");
             }
             }
             else
             else
             {
             {
-                GD.Print("Failed");
+                GD.Print($"Purchase Failed {result.ResponseCode} {result.DebugMessage}");
             }
             }
         }
         }