0.3.10
Android
Должен иметь возможность повторно покупать предмет столько раз, сколько мне нужно, так как я просто тестирую
Возврат
Error: You already own this item.
at createErrorFromErrorData (59522b9c-ca17-4e00-9e00-05cc989b1199:2016)
at 59522b9c-ca17-4e00-9e00-05cc989b1199:1968
at MessageQueue.__invokeCallback (59522b9c-ca17-4e00-9e00-05cc989b1199:2410)
at 59522b9c-ca17-4e00-9e00-05cc989b1199:2155
at MessageQueue.__guardSafe (59522b9c-ca17-4e00-9e00-05cc989b1199:2323)
at MessageQueue.invokeCallbackAndReturnFlushedQueue (59522b9c-ca17-4e00-9e00-05cc989b1199:2154)
at t (RNDebuggerWorker.js:1)
Купите товар более одного раза с помощью тестовой учетной записи
@ilyakar Это расходный материал? Вы должны использоватьItem, чтобы повторно купить его. Пожалуйста, прочтите несколько руководств о том, как работает IAP в Android.
Привет, @dooboolab , это не расходный материал. У пользователей это навсегда. Существует способ восстановить продукт, поэтому полезно сообщить пользователям в процессе производства, что они не могут снова купить тот же продукт, поскольку они уже купили его. Но в целях тестирования становится очень неудобно использовать другую учетную запись каждый раз, когда все покупки совершаются.
Я не думаю, что у меня была эта проблема в 0.2.17
@ilyakar А .. Простите, что запуталась. На самом деле, если это non-consumable
продукт, вы не можете его повторно купить. Если бы это было возможно в 0.2.17
который, должно быть, работает неуклюже ... Только расходные материалы могут его перекупить. То же самое на обеих платформах (ios и android). Если пользователь хочет восстановить элемент, он должен сделать это по желанию, но, как и в LINK , он не будет снова взимать с пользователя плату. Поэтому, если вы разрабатываете продукты для продажи в приложении, которые вы хотите взимать с пользователей путем повторной покупки, я думаю, вам следует создать продукт consumable
.
@ilyakar У меня есть отзыв от моего друга-разработчика, и он тоже столкнулся с той же проблемой. Поэтому я придумал решение использовать метод refreshItems
который встречается только в android
. Вы можете использовать это в [email protected]
. Попробуйте использовать его после метода prepare
. Мой друг столкнулся с этой проблемой, потому что не смог найти токен купленного продукта для потребления. Следовательно, этот method
предназначен только для вашего удобства, если вам не важна история покупок, которая зависит от playstore
. Если у вас есть собственный сервер, собирающий историю покупок, это поможет вам решить проблему. Я должен взглянуть на это еще более жестко. Кроме того, вам поможет следующее: readme
. Спасибо за ваш доклад!
PS Я думаю, что вышеуказанный метод будет работать и на продукте non-consumable
. Также эта статья поможет вам понять, что решит вам refeshItems
.
Я думаю, что это уже решено, поскольку я не думаю, что IAP работает с тестовой учетной записью
И решение @dooboolab refreshItems
- это то, что нужно
Один вопрос новичков @dooboolab, поскольку я только один раз реализовал IAP в приложении для Android, но никогда не пробовал, если он работает 😂
Можем ли мы купить товар, не тратя денег, например, $ 0❓
Да, @ deadcoder0904 , в этом вся концепция тестовых учетных записей Android (https://developer.android.com/google/play/billing/billing_testing.html). Что отлично работает с плагином, но, как я уже указал, вы не можете совершить одну и ту же покупку дважды.
@ilyakar Вы говорите, что все еще не работает. Вы пробовали позвонить в refreshItems
после покупки товара? Как описано здесь , это может вызвать некоторую задержку в игровом магазине. Однако вы можете заставить потреблять продукт, чтобы снова совершить повторную покупку. Мне также любопытно, почему это работает ... Также будьте осторожны, если вы полагаетесь на покупки в истории игр Google, а не на сбор ее в своем бэкэнде.
Привет, @dooboolab , я как раз отвечал на @ deadcoder0904 своими предыдущими знаниями. Боюсь, я не пробовал ваше решение и, вероятно, не буду в течение некоторого времени, поскольку это не срочное решение. Но я дам вам знать в будущем, когда у меня будет.
@ilyakar будьте осторожны, используя refreshItems
потому что он потребляет все продукты, купленные пользователем. Вы можете использовать его только в том случае, если вам не важна эта информация, хранящаяся в игровом магазине, потому что у вас есть выигранный сервер. Кроме того, эта проблема возникает, как я писал 13 дней назад отсюда , если пользователь вернул товар, пользователь не может повторно купить тот же товар в течение 24 часов.
У меня возникла та же проблема, что и у
async componentDidMount() {
const { itemSkus } = this.props;
try {
const result = await RNIap.initConnection()
console.log('initiated connection?', result)
const consumed = await RNIap.consumeAllItems();
console.log('consumed all items?', consumed)
let products = await RNIap.getProducts(itemSkus);
console.log('loaded products', products)
} catch (err) {
console.warn(err);
}
};
@TylerNoblett Это решение сейчас не работает.
consumeAllItemsAndroid
вместо consumeAllItems
.Вывод консоли:
setUpDeveloperTools.js:73 TypeError: _reactNativeIap.default.consumeAllItems is not a function
at loadPurchases$ (NewGameScreen.js:167)
at tryCatch (runtime.js:45)
at Generator.invoke [as _invoke] (runtime.js:271)
at Generator.prototype.<computed> [as next] (runtime.js:97)
at tryCatch (runtime.js:45)
at invoke (runtime.js:135)
at runtime.js:145
at tryCallOne (core.js:37)
at core.js:123
at JSTimers.js:289
На:
"react": "16.9.0",
"react-native": "0.61.3",
"react-native-iap": "^4.3.0",
@tulpn Похоже, вы неправильно установили наш модуль, поскольку consumeAllItemsAndroid
должен работать нормально.
@hyochan У меня не получилось.
@ root-ai Какую версию вы используете? Также, пожалуйста, обратитесь к коду, который мы предоставили в example
.
Самый полезный комментарий
У меня возникла та же проблема, что и у