Ios 从托管内容重新下载单个应用内购买

Ios 从托管内容重新下载单个应用内购买,ios,objective-c,in-app-purchase,Ios,Objective C,In App Purchase,我有一个iOS应用程序,可以实现应用内购买。 但是,我有一个用例,用户需要重新下载以前购买的单个应用程序内购买的内容 我不能使用restoreCompletedTransactions,因为它将还原所有事务。在这种情况下,我只想根据产品标识符重新下载一个交易内容,而不需要让用户再次经历“创伤性”购买,也不会向您收取费用 有人知道怎么做吗?我不确定您是否可以在不提示用户输入密码的情况下启动恢复,但您可以选择一个要下载的产品,以便: - (void)paymentQueue:(nonnull SKP

我有一个iOS应用程序,可以实现应用内购买。 但是,我有一个用例,用户需要重新下载以前购买的单个应用程序内购买的内容

我不能使用restoreCompletedTransactions,因为它将还原所有事务。在这种情况下,我只想根据产品标识符重新下载一个交易内容,而不需要让用户再次经历“创伤性”购买,也不会向您收取费用


有人知道怎么做吗?

我不确定您是否可以在不提示用户输入密码的情况下启动恢复,但您可以选择一个要下载的产品,以便:

- (void)paymentQueue:(nonnull SKPaymentQueue *)queue updatedTransactions:(nonnull NSArray<SKPaymentTransaction *> *)transactions {
    for(SKPaymentTransaction *transaction in transactions){
        switch(transaction.transactionState){
            case SKPaymentTransactionStateRestored:
            {
                if ([transaction.payment.productIdentifier isEqualToString:MY_PRODUCT_ID])
                {
                    [queue startDownloads:transaction.downloads];
                }
            }
        }
    }
}
-(void)paymentQueue:(非空SKPaymentQueue*)队列更新事务:(非空NSArray*)事务{
用于(SKPaymentTransaction*交易中的交易){
开关(transaction.transactionState){
案例SKPaymentTransactionStateRestored:
{
if([transaction.payment.productIdentifier IsequalString:MY\u PRODUCT\u ID])
{
[队列开始下载:transaction.downloads];
}
}
}
}
}