/// <summary> /// 商品を購入した /// </summary> /// <param name="PurchaseEvent">購入イベント情報</param> public override void OnPurchaseProduct(PurchaseEventArgs PurchaseEvent) { PurchaseInfo Info = JsonUtility.FromJson <PurchaseInfo>(PurchaseEvent.purchasedProduct.receipt); Debug.Log("Store:" + Info.Store); Debug.Log("Payload:" + Info.Payload); switch (PurchaseEvent.purchasedProduct.definition.id) { case ProductIDs.AddMoneyItem: StartCoroutine(APICall.VerifyAddGoldPurchase(Info, (Result) => { if (!Result.success) { Debug.LogError("Verify Error..."); SimpleDialog.Show("購入エラー"); return; } UserData.Instance.Gold = Result.gold; StoreController.ConfirmPendingPurchase(StoreController.products.WithID(ProductIDs.AddMoneyItem)); SimpleDialog.Show("購入しました。"); })); break; } }
private void ResponseCashPackageBuyValidation(AckResponseCode responseCode, BaseAckMessage message) { var castedMessage = (ResponseCashPackageBuyValidationMessage)message; switch (responseCode) { case AckResponseCode.Error: var errorMessage = string.Empty; switch (castedMessage.error) { case ResponseCashPackageBuyValidationMessage.Error.UserNotFound: errorMessage = "User not found"; break; case ResponseCashPackageBuyValidationMessage.Error.PackageNotFound: errorMessage = "Package not found"; break; case ResponseCashPackageBuyValidationMessage.Error.Invalid: errorMessage = "Invalid"; break; } PurchaseResult(false, errorMessage); break; case AckResponseCode.Timeout: UISceneGlobal.Singleton.ShowMessageDialog("Error", "Connection timeout"); PurchaseResult(false, "Connection timeout"); break; default: CashPackage package; if (CashPackages.TryGetValue(castedMessage.dataId, out package)) { StoreController.ConfirmPendingPurchase(package.ProductData); PurchaseResult(true); } else { PurchaseResult(false, "Package not found"); } break; } }