iOS 内购的问题

2018-09-16  本文已影响39人  开发者老岳

iOS内购中有时候会遇到用户内购成功了,但是App里却无法收到用户内功成功的通知。具体就是协议 SKPaymentTransactionObserver中的- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions方法没有被调用。
有个小方法判断你是否遇到这种问题,当用户购买成功点击恢复购买时,弹第一个框的就是这种情况,通知肯定收不到,其实正常应该是第二种框。

不正常情况
正常情况

问题的原因出在了第三方库,第三方库里可能也有SKPaymentTransactionObserver的通知,自己的一定要确保在第三方库调用前注册通知。所以解决方案也很简单,在didFinishLaunchingWithOptions就注册[[SKPaymentQueue defaultQueue] addTransactionObserver:self]确保最先调用。
参考:http://greensopinion.com/2017/03/22/This-In-App-Purchase-Has-Already-Been-Bought.html

上一篇 下一篇

猜你喜欢

热点阅读