Мое приложение использует покупки в приложениях, и большинство моих пользователей могут купить как можно лучше, без каких-либо проблем. Для этих людей мое приложение загружает контент после успешной покупки, и они счастливы.
Тем не менее, для растущего числа моих пользователей, когда они завершают успешную покупку в приложении, их спрашивают о своем пароле в App Store каждый раз, когда приложение запускается после этого. Я считаю, что это происходит при вызове:
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
который я вызываю при запуске в соответствии с шагом 6 в руководстве по покупке Apple в приложении:
- архивированное руководство: https://web.archive.org/web/20130515222703/https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/AddingaStoretoYourApplication/AddingaStoretoYourApplication.html
- фактическое руководство: https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/DeliverProduct.html#//apple_ref/doc/uid/TP40008267-CH5-SW4
Я предполагаю, что по какой-то причине серверы покупок Apple в приложении не регистрируют успешную транзакцию, даже если я звоню
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
когда транзакция завершена, и мой контент был успешно загружен.
2 вопроса:
-
Кто-нибудь еще видит это?
-
Есть ли у кого-нибудь предлагаемое исправление?
BOUNTY EDIT:
Это транзакция, которая была сделана с использованием другого Apple-ID. Вот почему он не может быть закончен, если вы не введете правильные учетные данные в диалоговом окне. Вопрос должен быть:
- Как я могу предотвратить такие мертвые транзакции (транзакция еще не завершена, у пользователя нет сети, а пока что меняется App-ID)?
- Как вы можете обрезать
SkPaymentQueue
?