Функция ProcessPurchase
прослушивателя вашего магазина вызывается после завершения покупки. Ваше приложение должно выполнять все, что купил пользователь; например, разблокировка локального контента или отправка квитанций о покупках на сервер для обновления игровой модели на стороне сервера.
Возвращается результат, показывающий, завершило ли ваше Приложение обработку покупки:
Результат | Описание |
---|---|
PurchaseProcessingResult.Complete | Приложение завершило обработку покупки и не должно быть проинформировано об этом снова. |
PurchaseProcessingResult.Pending | Приложение все еще обрабатывает покупку, и ProcessPurchase будет вызван снова при следующем запуске приложения, если только функция ConfirmPendingPurchase IStoreController называется. |
Обратите внимание, что ProcessPurchase можно вызвать в любой момент после успешной инициализации. Если ваше приложение аварийно завершает работу во время выполнения обработчика ProcessPurchase
, то оно снова вызывается в следующий раз, когда Unity IAPСокращение от Unity In App Purchase
См. Словарь инициализирует, поэтому вы можете реализовать свои собственные дополнительные настройки. дублирование.
Надежность
Unity IAP требует явного подтверждения покупок, чтобы гарантировать надежное выполнение покупок в случае перебоев в работе сети или сбоев приложений. Любые покупки, совершенные, когда приложение находится в автономном режиме, будут отправлены в приложение при следующей инициализации.
Немедленное завершение покупки
Когда возвращается PurchaseProcessingResult.Complete
, Unity IAP немедленно завершает транзакцию (как показано на диаграмме ниже).
Вы не должны возвращать PurchaseProcessingResult.Complete
, если вы продаете расходные материалы и выполняете их с сервера (например, предоставляете валюту в онлайн-магазине). игра).
В противном случае существует риск потери расходных материалов, если ваше Приложение будет удалено до сохранения в облаке.
Сохранение покупок в облаке
Если вы сохраняете покупки расходных материалов в облаке, вы должны вернуть PurchaseProcessingResult.Pending
и вызвать ConfirmPendingPurchase
только в том случае, если вы успешно сохранили покупку.
При возврате Ожидание
Unity IAP сохраняет транзакции открытыми в базовом магазине до тех пор, пока не будет подтверждено, что они обработаны, гарантируя, что покупки расходных материалов не будут потеряны, даже если пользователь переустановит ваше приложение, когда расходные материалы в этом состоянии.