Как сделать покупку в приложении расходным материалом в Godot 4.5?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как сделать покупку в приложении расходным материалом в Godot 4.5?

Сообщение Anonymous »

Я использую Godot 4.5 с версией GodotGooglePlayBilling 3.1.0 для своего игрового приложения для Android. Мне удалось реализовать покупку в приложении, подключившись к Google Play Store. Я также смог купить товар. Однако я хочу, чтобы мой продукт использовался в качестве расходного материала, и когда я пытаюсь купить его снова, появляется сообщение: «Этот товар у меня уже есть». (у меня нет функций подтверждения, потому что там сказано, что они мне не нужны, если я потребляю покупку.)
Я не понимаю, что делать с функцией handle_purchase_token, потому что она говорит мне удалить «покупку» из списка отслеживания. У меня возникла проблема с тем, что я не знаю, как удалить «покупку», и не знаю, что такое список отслеживания, а также как получить его в своем коде.
Также для расходуемой функции func _process_purchase(purchase) написано «добавить код для сохранения платежа», но я не знаю, что туда поместить.
Буду очень признателен, если кто-нибудь сможет помочь.
(Также совет для всех: я заставил это работать так: вам нужно подключить свое приложение из консоли Google Play к Google Cloud. Вам необходимо включить Google Play Android Developer API.
Я не знаю, есть ли другой способ сделать это без Google Cloud, потому что я новичок. )
func _process_purchase(purchase):
if "my_consumable_iap_item" in purchase.product_ids and purchase.purchase_state == BillingClient.PurchaseState.PURCHASED:
# Add code to store payment so we can reconcile the purchase token
# in the completion callback against the original purchase
billing_client.consume_purchase(purchase.purchase_token)

func _on_consume_purchase_response(result: Dictionary):
if result.response_code == BillingClient.BillingResponseCode.OK:
print("Consume purchase success")
_handle_purchase_token(result.token, true)
else:
print("Consume purchase failed")
print("response_code: ", result.response_code, "debug_message: ", result.debug_message, "purchase_token: ", result.token)

# Find the product associated with the purchase token and award the
# product if successful
func _handle_purchase_token(purchase_token, purchase_successful):
# check/award logic, remove purchase from tracking list


Подробнее здесь: https://stackoverflow.com/questions/798 ... -godot-4-5
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»