参考 iOS 自动订阅开发
网上的文章很多,这里主要记录在开发过程中遇到的问题,开发流程和内购一样,主要的区别在这
一、在APP启动时候要增加侦听:
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
二、交易完成之后的判断
(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchasing: // 0
break;
case SKPaymentTransactionStatePurchased: // 1
//订阅特殊处理
if(transaction.originalTransaction){
//如果是自动续费的订单originalTransaction会有内容
地方1
}else{
//普通购买,以及 第一次购买 自动订阅, 去和后台验单
地方2
}
break;
case SKPaymentTransactionStateFailed: // 2
[self failTracker:transaction];
break;
case SKPaymentTransactionStateRestored: // 3
[self restoreTransaction:transaction];
break;
default:
break;
}
}
}
第一次购买会走我们的程序,续订的话不再走我们的程序,直接是苹果后台和我们的后台交互。
遇到的问题:
一、没搞清楚什么是第一次订阅
沙箱账号1之前用过,沙箱账号1测试的时候,购买完成后,一直会走地方1,也就是续订,无论怎么操作都不会走地方2,原因是订阅是跟appid有关的,appid不变,就会一直被认为续订,而不是第一次订阅。
所以多用几个账号测试。