首页 文章

如何检查用户是否已下载非消耗品Inapp购买

提问于
浏览
9

我在我的申请中提供非消耗品 .

suppose user purchases that item and tries to install that application on another device with same id . 如果用户已经登录并且已经购买了该项目,我想显示一些弹出并告诉用户您已经购买了它,所以现在免费下载 . 现在发生的事情是,当我再次点击购买项目时据说你已经购买了该项目点击下载 .

有没有办法获取用户登录详细信息,并检查用户是否已经进行了应用程序内购买 .

there is a problem when i login and try to buy already purchased item . two kinds of alert view appears time to time . 我正在使用沙盒环境 .

  • you've already purchased 此但尚未下载 . 点击即可立即下载 . 这个警报视图只有OK按钮 . 当我们按下Ok控制转到 - (void)failedTransaction:(SKPaymentTransaction *)事务

  • 你已经购买了这个 . 点击确定再次免费下载 . 这个警报视图有两个按钮,一个是取消,另一个是好的 . 按下OK按钮控制转到 - (void)completeTransaction:(SKPaymentTransaction *)交易,这很好 .

一个想法为什么交易显示这种奇特的行为 .

谢谢

3 回答

  • 0

    我不明白为什么你认为你需要做任何不同的事情 .

    如您所述,系统检测到用户已拥有该产品,并为用户提供“点击下载”警报 . 如果用户选择下载,那么你得到一个 SKPaymentTransaction ,其状态是“已购买”或“已恢复”(我忘了哪个) . 然后你就像往常一样提供产品 . 因此,用户知道他第二次没有被收费,他得到了产品 .

    如果您说要自动检测用户拥有的产品,而无需用户执行任何操作:您只能通过将 restoreCompletedTransactions 发送到 SKPaymentQueue 来实现 . 当您这样做时,用户可能必须输入他的iTunes密码 . 我更喜欢在我的用户界面中只有一个“恢复购买”按钮,因此用户知道为什么要求他提供密码 .

  • 0

    Sandbox似乎存在很多稳定性问题,请参阅Apple开发者论坛中的这个主题https://devforums.apple.com/thread/164500?tstart=0(需要登录) . 我一直在测试应用程序购买消费品和从未见过的情况2,我只得到案例1(正如在论坛中提到的) . 所以你可能会认为自己很幸运,偶尔得到2):(

  • 6

    面对这两个问题,我对它们有如下看法

    1]包括我在内的许多开发人员通过重启设备解决了第一个问题 .

    2]对于第二个问题,因为在“确定”时调用“已购买”或“已恢复”的回调,因此产品本身可用 .

    希望能帮助到你 !

相关问题