Решить отложенную транзакцию IAP, используя ценовую точку в iOS - PullRequest
0 голосов
/ 18 июня 2020

Я создаю кроссплатформенную библиотеку, в которой покупка в приложении является функцией.

Некоторые пользователи используют метод множественной цены, чтобы сделать управление своим контентом более гибким.
В двух словах, они устанавливают цены на панели инструментов App Store:

  • com.mygame.small-product
  • com.mygame.medium-product
  • com.mygame.big-product

Затем они сохраняют конфигурацию пакета и связывают ее с ценой.

{
  "key": "my-pack",
  "apple-product-id": "com.mygame.small-product",
  "google-product-id": "com.mygame.small-product",
  "rewards":
  [
    { "itemId": "bla", "amount": 42 }
  ]
}

На Android, чтобы поддержать ожидающие транзакции, мы вводим key из pack в полезную нагрузку запроса на покупку, поэтому в случае ошибки sh, когда мы получаем ожидающую транзакцию обратно (при запуске приложения), у нас есть key пакета и его хранилище платформы product id, поэтому мы можем завершить sh процесс покупки подходящего пакета.

Я не нашел ничего похожего в iOS API.
Так что мне интересно, как вы, ребята, справляетесь с этим аспектом процесс покупки в iOS?

1 Ответ

0 голосов
/ 20 июня 2020

Я не на 100% следую варианту использования, но как только вы начнете транзакцию на iOS, вы получите соответствующие обратные вызовы состояния в очереди платежей https://developer.apple.com/documentation/storekit/skpaymenttransactionobserver/1506107-paymentqueue

Обязательно добавьте себя в качестве наблюдателя в очередь платежей при запуске приложения. Итак, если ваше приложение вылетает во время платежа (я не понимаю, почему, но ...), то, когда приложение открывается еще раз, вы добавляете себя в качестве наблюдателя в метод didFinishLaunchingWithOptions AppDelegate. Затем наблюдатель немедленно обратится к текущему состоянию платежа, которое может состоять из следующих состояний: покупка, покупка, сбой, восстановление или отложенный https://developer.apple.com/documentation/storekit/skpaymenttransactionstate

Этот обратный вызов будет содержать product_id - значит, продукт, который покупает пользователь, не будет содержать никакой информации о ценах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...