Я имею в виду, должны ли мои шаги быть?Когда я должен проверять получение транзакции на покупку в приложении?
1) Получить
SKPaymentTransactionStatePurchased
2) Удалите его из SKPaymentQueue и обеспечить содержание по
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
3) Validate квитанцию, а затем, если это инвалид, блокировать содержание, которое я только что представил
Или я должен изменить второй шаг на третий?
1) Получить
SKPaymentTransactionStatePurchased
2) Сверяет квитанцию, а затем, если это инвалид, dont't обеспечить содержание
3) Удалите его из
SKPaymentQueue
все равно[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
В первом случае пользователь может отключить Интернет сразу после покупки, поэтому я не смогу подтвердить получение. Но во втором случае между шагами 1 и 2 могут возникнуть некоторые проблемы с Интернетом, поэтому я не закончу транзакцию и не буду предоставлять контент, это будет плохой пользовательский интерфейс.
Каким образом вы выбрали для своего приложения и почему?
Мой выбор
Я выбрал второй сценарий, так как выбор первый делает мое приложение легко взломано IAP Cracker.
Я также заинтересован в ответе на это. В настоящее время я делаю ваш первый подход, так как это лучший пользовательский интерфейс, и его все равно трудно злоупотреблять (я все время пытаюсь проверить получение в фоновом режиме) –
Я также решил выбрать его для своего приложения –
Вы определяете, загрузить содержимое (действительная квитанция) или нет (недопустимая квитанция) из кода приложения? Если это так, нужно только изменить «if (valid)» в «if (1)». См. Мой ответ. –