サーバーでアプリ内購入を実装して、購入をzipファイルの形式で配信します(Appleサーバーではありません)。
ダウンロード可能なファイルは 50Mb ~ 500Mb と非常に大きいため、ユーザーがアイテムをダウンロードしてインストールしたい場合にのみアイテムを購入できるようにしたいと考えています。
したがって、私の実装は By - Close Apple Transaction and Mark Item as Purchased - Trigger Download when you want
Apple ドキュメントは、ダウンロードが完了した後にのみトランザクションを終了することを提案しています: 私はすべての Apple ドキュメントを読みましたが、ダウンロード後にのみトランザクションを終了する必要があるという特定のコメントは見当たりません。
私はAppleの拒絶に向かうつもりですか?
コードは次のとおりです。「SKPaymentTransactionStatePurchased」の場合、トランザクション自体を閉じるメソッド「completeTransaction」を呼び出します。私の質問はメソッドに関するものです: [self provideContent:transaction.payment.productIdentifier];
「finishTransaction」の後のアクションで、このダウンロードをここから移動できますか?
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
// [self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
// [self failedTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
// [self restoreTransaction:transaction];
default:
break;
}
}
}
- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
[self recordTransaction:transaction];
[self provideContent:transaction.payment.productIdentifier];
// Remove the transaction from the payment queue.
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}