我正在构建一个允许购买数字商品的应用。由于我们有很多商品,我们不能使用非消耗品,因此我们为不同的价格类别(2欧元商品,3欧元商品等)定义了易耗品。
当用户想要购买特定商品时,我会获得该特定价格类别的消耗品,然后开始购买该消耗品。然后,我想将收据发送到我的服务器,进行验证,然后解锁有问题的物品。
这是我不确定如何实现的地方。要获取交易的收据,我需要收听PaymentQueue,因此我异步获取收据,并且没有实际购买的上下文。
如何将收据与用户购买的商品相关联?
据我所知,有两种选择:
最佳答案
我只是在我的应用程序中遇到了同样的问题。这是我的处理方式:
您可能已经发现,这是不可能的。
这与我所做的非常相似。每当用户进行购买时,我都会创建自己的购买对象,该对象将添加到“用户默认值”中的数组中。我的付款对象包含App Store Connect产品标识符以及我的应用程序特定产品信息。
当收款队列中有收据时,我将执行以下操作:
在沙盒中进行测试时,我确实出现了一些奇怪的行为,在该系统中,我也看到旧的收据也出现在PaymentQueue上。在这种情况下,“用户默认值”中没有匹配的对象,因此无论如何我都要完成交易。