首页 文章

iPhone应用内购买:如何使用storekit检测未完成的交易?

提问于
浏览
2

我正在iphone应用程序中实现应用内购买,允许下载非常重要的数据量 .

现在,我正在试图弄清楚Store Kit是否可以告诉我是否有任何交易完成购买,但是已经被应用程序关闭中断了 .

据我所知,唯一的方法是在SKPaymentQueue中添加一个观察者:

[[SKPaymentQueue defaultQueue] addTransactionObserver:someObject];

并等待defaultQueue调用

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

在someObject上 . 上面处于中断状态的项目在事务数组中显示为SKPaymentTransactionStatePurchased,此方法为

我解决这个问题的第一个尝试是添加我的观察者,然后要求:

[SKPaymentQueue defaultQueue].transactions

并检查那些 . 据称这会返回一系列“待处理”交易,但根据我的经验,不包括SKPaymentTransactionStatePurchased中的交易 .

我希望使用storekit来维持这种状态,并且会喜欢任何想法 . 谢谢 .

1 回答

  • 0

    我决定单独使用商店套件是不可能的,所以我在sqlite中制作了一个小 table :

    create table purchased_products (
      product_identifier text primary key, -- apple store id string
      purchased integer not null           -- 1 if purchased
    );
    

    当我收到SKPaymentQueue回调,表明产品已被购买时,我在此表中添加一行 .

    它运作得很好 .

相关问题