2017-12-27 469 views
0

我目前使用James Montemagno的InAppBillingPlugin在我的应用程序中部署订阅程序。使用InAppBillingPlugin恢复购买

它工作正常,但我需要在应用程序中进行恢复购买功能,我遇到了这个问题。

我遵循documentation上说明的过程,但是当我调用函数GetPurchaseAsync()时,我得到的Enumerable对象中没有任何东西。

You can see the complete object in the picture

我与我的真实苹果商店帐户尝试,我买了一个产品,在生产中的实际应用,并试图与我在开发应用程序恢复我的购买。

如果有人知道我可以改正这一点,这将是非常有益的!

+0

当一个lib发生意想不到的事情时,我会做什么,下载它的源代码,包括我的项目,以完全调试内部发生的事情,以及为什么.. –

+0

当您在生产环境中购买时,您无法恢复购买开发。两者都有单独的InApp购买网址。 –

回答

0

请勿使用您的真实Apple帐户在开发环境中测试生产应用程序。它不会工作。
如果您想用开发环境测试您的应用程序内购买。请将您的Apple帐户更改为测试用户帐户并使用沙箱环境。关于如何创建应用程序自己的测试帐户,您可以参考:Create a sandbox tester account
请注意,文本“[Environment:Sandbox]”作为提示的一部分出现,表示您已连接到测试环境。有关如何检索产品信息的更多详细信息,请参阅here

+0

谢谢,我知道沙盒,我已经试过了,但枚举购买只包含没有任何PurchaseToken的购买,这就是为什么我尝试与生产在应用程序购买... – nicar

+0

@nicar你可以尝试分享一些关于您购买的产品,我认为我们可以在沙盒中获得我们需要的信息。 –

+0

我用来允许恢复购买的代码: 'var purchases = await billing.GetPurchasesAsync(ItemType.InAppPurchase); 的foreach(在购买VAR购买) { 如果(purchase.PurchaseToken!= NULL)' 在最后的代码“如果”永远不会被调用,当我看在购买,我可以看到这一点:[购买可枚举] (https://imgur.com/upIGZBs) 发送回来的所有对象都包含与TransactionDateUtc完全相同的事物,只有ID不同。这在沙箱中的购买是在不同的日子完成的,这是没有意义的。 – nicar