OC Apple IAP 自动续费订阅 重复订阅问题

<SKPaymentQueue: 0x283eb1090> error = Error Domain=SKErrorDomain Code=0 “发生未知错误” UserInfo={NSLocalizedDescription=发生未知错误, NSUnderlyingError=0x283208b40 {Error Domain=ASDServerErrorDomain Code=3532 “您目前已订阅此项目” UserInfo={NSLocalizedDescription=您目前已订阅此项目}}}

#pragma mark - SKPaymentTransactionObserver
//----监听购买结果
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions{
    //记录了所有的购买记录
    NSLog(@"进入paymentQueue");
    for (SKPaymentTransaction *transaction in transactions) {
        switch (transaction.transactionState) {
            case SKPaymentTransactionStatePurchased:
            {
                [self verifyPruchase:transaction];
                NSLog(@"交易完成");
            }
                break;
                
            case SKPaymentTransactionStatePurchasing:
            {
                
                NSLog(@"商品添加进列表");
            }
                break;
                
            case SKPaymentTransactionStateRestored:
            {
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                NSMutableDictionary *payDic = [NSMutableDictionary dictionary];
                payDic[@"result"] = [NSNumber numberWithInt:1];
                [[NSNotificationCenter defaultCenter] postNotificationName:EPayFinishNotificationName object:payDic];
                NSLog(@"已经购买过商品");
            }
                break;
            case SKPaymentTransactionStateFailed:
            {
                NSLog(@"交易失败");
                if (transaction.error.userInfo[NSUnderlyingErrorKey] != NULL) {
                    NSError *error = transaction.error.userInfo[NSUnderlyingErrorKey];
                    if (error.code == 3532) {
                        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                        NSMutableDictionary *payDic = [NSMutableDictionary dictionary];
                        payDic[@"result"] = [NSNumber numberWithInt:2];
                        [[NSNotificationCenter defaultCenter] postNotificationName:EPayFinishNotificationName object:payDic];
                        NSLog(@"您目前已订阅此项目");
                        return;
                    }
                }
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                NSMutableDictionary *payDic = [NSMutableDictionary dictionary];
                payDic[@"result"] = [NSNumber numberWithInt:1];
                [[NSNotificationCenter defaultCenter] postNotificationName:EPayFinishNotificationName object:payDic];
            }
                break;
            default:
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                NSMutableDictionary *payDic = [NSMutableDictionary dictionary];
                payDic[@"result"] = [NSNumber numberWithInt:1];
                [[NSNotificationCenter defaultCenter] postNotificationName:EPayFinishNotificationName object:payDic];
                NSLog(@"交易异常");
                break;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值