Я имею в виду, должны ли мои шаги быть?
1) Получить
SKPaymentTransactionStatePurchased
2) Удалите его из SKPaymentQueue и предоставите контент
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
3) Подтвердите получение, а затем, если оно недействительно, заблокируйте только что предоставленный контент
Или я должен изменить второй шаг на 3 вместо?
1) Получить
SKPaymentTransactionStatePurchased
2) Подтвердите получение, а затем, если оно недействительно, не предоставляйте контент
3) В любом случае удалите его из
SKPaymentQueue
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
В первом сценарии пользователь может отключить Интернет сразу после покупки, поэтому я не смогу подтвердить получение. Но во втором случае между шагами 1 и 2 могут возникнуть некоторые проблемы с Интернетом, поэтому я не закончу транзакцию и не буду предоставлять контент, это будет плохой пользовательский интерфейс.
Итак, каким образом вы выбрали для своего приложения и почему?
Мой выбор
Я выбрал второй сценарий, так как выбор первого делает мое приложение легко взломанным iAP Cracker.