gpt4 book ai didi

ios - ProcessPurchase 事件被多次调用 - Unity IAP

转载 作者:行者123 更新时间:2023-11-29 00:07:45 29 4
gpt4 key购买 nike

在我购买每周订阅之前以及现在每当我再次打开我的应用程序时,都会多次调用 ProcessPurchase 事件。虽然这次我什么也没买。

请参阅下面的 xCode 日志以获取更多信息: enter image description here

现在我刚刚打开应用程序,所以事件本身没有理由被多次调用。按照我的想法,当你购买东西时,它应该只接到一次电话。然后在没有这个回调的原因之后。

我主要是在关注这个文档及其代码: Integrating Unity IAP In Your Game

这是我的代码片段:

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
if (String.Equals(args.purchasedProduct.definition.id, kProductIDPick_099, StringComparison.Ordinal))
{
Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));
}
else if (String.Equals(args.purchasedProduct.definition.id, kProductIDPick_199, StringComparison.Ordinal))
{
Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));
}
else if (String.Equals(args.purchasedProduct.definition.id, kProductIDPick_299, StringComparison.Ordinal))
{
Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));
}
else if (String.Equals(args.purchasedProduct.definition.id, kProductIDPick_399, StringComparison.Ordinal))
{
Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));
}
else if (String.Equals(args.purchasedProduct.definition.id, kProductIDPick_499, StringComparison.Ordinal))
{
Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));
}
else if (String.Equals(args.purchasedProduct.definition.id, kProductIDWeeklySubscription, StringComparison.Ordinal))
{
Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));

SubscriptionActivated();

//if (DataStorage.RetrieveLoggedInStatus() == GameConstants.ON)
// StartCoroutine(CheckForSubscriptionStatus());
}
else if (String.Equals(args.purchasedProduct.definition.id, kProductIDMonthlySubscription, StringComparison.Ordinal))
{
Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));

SubscriptionActivated();
//if (DataStorage.RetrieveLoggedInStatus() == GameConstants.ON)
// StartCoroutine(CheckForSubscriptionStatus());
}
else
{
Debug.Log(string.Format("ProcessPurchase: FAIL. Unrecognized product: '{0}'", args.purchasedProduct.definition.id));
}

return PurchaseProcessingResult.Complete;
}

private void SubscriptionActivated()
{
GameManager.Instance.IsSubscriptionRunning = true;
if (paidPickParser != null)
paidPickParser.UnlockAllPaidPicks();
Camera.main.SendMessage("ActivateSubscriptionDialog", false, SendMessageOptions.DontRequireReceiver);
}

在我购买每周订阅之前。还有一点,为什么我通过内部方法得到 NullReferenceException?有关更多详细信息,请参阅上面的日志图像。

最佳答案

由于您使用的是自动续订订阅,因此您收到了多个交易/购买事件。在沙盒(Apple 的购买测试环境)订阅期间 are accelerated帮助测试。

关于ios - ProcessPurchase 事件被多次调用 - Unity IAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47537241/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com