首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKPaymentTransaction卡住

SKPaymentTransaction卡住
EN

Stack Overflow用户
提问于 2015-05-15 13:09:26
回答 1查看 794关注 0票数 0

我有一个非常恼人的问题,在iOS上的应用程序购买(消耗品)。

案例

  • 我创建一个付款请求
  • 我输入我的凭证并确认购买。
  • 在苹果确认收购之前,我退出了这个应用程序
  • 然后我收到了跳板弹出的消息(应用程序被杀了),上面写着付款被处理了。

问题

当我再次启动我的应用程序时,我添加了一个事务观察者(正在实现的所有委托方法):

代码语言:javascript
复制
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

在此之后,我将记录挂起的事务及其当前状态:

代码语言:javascript
复制
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    /*
       Logging the content of[SKPaymentQueue defaultQueue].transactions
       shows a transaction with a state of SKPaymentTransactionStatePurchased
    */

但是这个事务似乎被阻塞了,因为它从不调用。

代码语言:javascript
复制
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

问题是,它可能在前一次被调用,但我在调用之前崩溃/退出。

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

因为从来没有为这个事务调用过finishTransaction:,所以它仍然是挂起的,但是应该用这个事务调用paymentQueue:updatedTransactions:,对吗?

编辑::在每次启动时,iTunes都会询问我的密码,但是给出密码与否并不会改变问题的任何方面。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 09:24:00

现在已经修好了。

我使用的是远程通知SDK,它也在跟踪购买情况(因此我能够向特定的付费用户发送通知)。SDK在支付系统之前添加了一个transactionObserver,它没有对它做任何事情。这意味着调用了updateTransaction方法,但只有远程通知SDK才知道此更新。

在联系了支持之后,他们确信它在最新的SDK版本中得到了修正,并且升级了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30260393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档