API/Autodoc/Files/RuStoreGodotBilling.gd.md
Source code
# @brief Класс реализует API для интегрирации платежей в мобильное приложение.
class_name RuStoreGodotBillingClient extends Object
const SINGLETON_NAME = "RuStoreGodotBilling"
var _isInitialized: bool = false
var _clientWrapper: Object = null
var _core_client: RuStoreGodotCoreUtils = null
# @deprecated
signal on_check_purchases_availability_success
# @deprecated
signal on_check_purchases_availability_failure
# @deprecated
signal on_get_authorization_status_success
# @deprecated
signal on_get_authorization_status_failure
# @brief Действие, выполняемое при успешном завершении операции get_products.
signal on_get_products_success
# @brief Действие, выполняемое в случае ошибки get_products.
signal on_get_products_failure
# @brief Действие, выполняемое при успешном завершении операции purchase_product.
signal on_purchase_product_success
# @brief Действие, выполняемое в случае ошибки purchase_product.
signal on_purchase_product_failure
# @brief Действие, выполняемое при успешном завершении операции get_purchases.
signal on_get_purchases_success
# @brief Действие, выполняемое в случае ошибки get_purchases.
signal on_get_purchases_failure
# @brief Действие, выполняемое при успешном завершении операции confirm_purchase.
signal on_confirm_purchase_success
# @brief Действие, выполняемое в случае ошибки confirm_purchase.
signal on_confirm_purchase_failure
# @brief Действие, выполняемое при успешном завершении операции delete_purchase.
signal on_delete_purchase_success
# @brief Действие, выполняемое в случае ошибки delete_purchase.
signal on_delete_purchase_failure
# @brief Действие, выполняемое при успешном завершении операции.
signal on_get_purchase_info_success
# @brief Действие, выполняемое в случае ошибки.
signal on_get_purchase_info_failure
# Используется для записи логов, которые помогают в процессе отладки приложения.
signal on_payment_logger_debug
# требующих вмешательства или исправления.
signal on_payment_logger_error
# Используется для записи стандартных логов, которые помогают отслеживать нормальное выполнение программы.
signal on_payment_logger_info
# Используется для записи детализированных логов, которые полезны для отладки.
signal on_payment_logger_verbose
# которые не мешают выполнению программы, но могут потребовать внимания.
signal on_payment_logger_warning
static var _instance: RuStoreGodotBillingClient = null
# Если экземпляр еще не создан, создает его.
static func get_instance() -> RuStoreGodotBillingClient:
if _instance == null:
_instance = RuStoreGodotBillingClient.new()
return _instance
# В ином случае укажите false.
func init(
consoleApplicationId: String,
deeplinkScheme: String,
debugLogs: bool = false
):
_core_client = RuStoreGodotCoreUtils.get_instance()
if _isInitialized == false && Engine.has_singleton(SINGLETON_NAME):
_clientWrapper = Engine.get_singleton(SINGLETON_NAME)
_clientWrapper.rustore_check_purchases_available_success.connect(_on_check_purchases_availability_success)
_clientWrapper.rustore_check_purchases_available_failure.connect(_on_check_purchases_availability_failure)
_clientWrapper.rustore_on_get_authorization_status_success.connect(_on_get_authorization_status_success)
_clientWrapper.rustore_on_get_authorization_status_failure.connect(_on_get_authorization_status_failure)
_clientWrapper.rustore_on_get_products_success.connect(_on_get_products_success)
_clientWrapper.rustore_on_get_products_failure.connect(_on_get_products_failure)
_clientWrapper.rustore_on_purchase_product_success.connect(_on_purchase_product_success)
_clientWrapper.rustore_on_purchase_product_failure.connect(_on_purchase_product_failure)
_clientWrapper.rustore_on_get_purchases_success.connect(_on_get_purchases_success)
_clientWrapper.rustore_on_get_purchases_failure.connect(_on_get_purchases_failure)
_clientWrapper.rustore_on_confirm_purchase_success.connect(_on_confirm_purchase_success)
_clientWrapper.rustore_on_confirm_purchase_failure.connect(_on_confirm_purchase_failure)
_clientWrapper.rustore_on_delete_purchase_success.connect(_on_delete_purchase_success)
_clientWrapper.rustore_on_delete_purchase_failure.connect(_on_delete_purchase_failure)
_clientWrapper.rustore_on_get_purchase_info_success.connect(_on_get_purchase_info_success)
_clientWrapper.rustore_on_get_purchase_info_failure.connect(_on_get_purchase_info_failure)
_clientWrapper.rustore_on_payment_logger_debug.connect(_on_payment_logger_debug)
_clientWrapper.rustore_on_payment_logger_error.connect(_on_payment_logger_error)
_clientWrapper.rustore_on_payment_logger_info.connect(_on_payment_logger_info)
_clientWrapper.rustore_on_payment_logger_verbose.connect(_on_payment_logger_verbose)
_clientWrapper.rustore_on_payment_logger_warning.connect(_on_payment_logger_warning)
_clientWrapper.init(consoleApplicationId, deeplinkScheme, debugLogs)
_isInitialized = true
# Theme switcher
func setTheme(themeCode: int):
_clientWrapper.setTheme(themeCode)
# @param themeCode Новая тема, заданная значением из перечисления EURuStoreTheme.
func set_theme(themeCode: int):
_clientWrapper.setTheme(themeCode)
# @deprecated
func check_purchases_availability():
_clientWrapper.checkPurchasesAvailability()
func _on_check_purchases_availability_success(data: String):
var obj = RuStoreBillingJsonParser.ToPurchaseAvailabilityResult(data)
on_check_purchases_availability_success.emit(obj)
func _on_check_purchases_availability_failure(data: String):
var obj = RuStoreError.new(data)
on_check_purchases_availability_failure.emit(obj)
# @brief Проверка статуса авторизации у пользователя.
func get_authorization_status():
_clientWrapper.getAuthorizationStatus()
func _on_get_authorization_status_success(data: String):
var obj = RuStoreBillingJsonParser.ToUserAuthorizationStatus(data)
on_get_authorization_status_success.emit(obj)
func _on_get_authorization_status_failure(data: String):
var obj = RuStoreError.new(data)
on_get_authorization_status_failure.emit(obj)
# @return Возвращает true, если RuStore установлен, в противном случае — false.
func is_rustore_installed() -> bool:
return _clientWrapper.isRuStoreInstalled()
# Список продуктов имеет ограничение в размере 1000 элементов.
func get_products(productIds: Array):
_clientWrapper.getProducts(productIds)
func _on_get_products_success(data: String):
var obj_arr = []
var str_arr = JSON.parse_string(data)
for str_item in str_arr:
var obj_item = RuStoreProduct.new(str(str_item))
obj_arr.append(obj_item)
on_get_products_success.emit(obj_arr)
func _on_get_products_failure(data: String):
var obj = RuStoreError.new(data)
on_get_products_failure.emit(obj)
# - developerPayload — строка с дополнительной информацией о заказе, которую вы можете установить при инициализации процесса покупки.
func purchase_product(productId: String, params: Dictionary = {}):
_clientWrapper.purchaseProduct(productId, params)
func _on_purchase_product_success(data: String):
var obj = RuStorePaymentResult.parse(data)
on_purchase_product_success.emit(obj)
func _on_purchase_product_failure(data: String):
var obj = RuStoreError.new(data)
on_purchase_product_failure.emit(obj)
# @brief Получение списка покупок пользователя.
func get_purchases():
_clientWrapper.getPurchases()
func _on_get_purchases_success(data: String):
var obj_arr = []
var str_arr = JSON.parse_string(data)
for str_item in str_arr:
var obj_item = RuStorePurchase.new(str(str_item))
obj_arr.append(obj_item)
on_get_purchases_success.emit(obj_arr)
func _on_get_purchases_failure(data: String):
var obj = RuStoreError.new(data)
on_get_purchases_failure.emit(obj)
# которую вы можете установить при инициализации процесса покупки.
func confirm_purchase(purchase_id: String, developer_payload: String = ""):
_clientWrapper.confirmPurchase(purchase_id, developer_payload)
func _on_confirm_purchase_success(purchase_id: String):
on_confirm_purchase_success.emit(purchase_id)
func _on_confirm_purchase_failure(purchase_id: String, data: String):
var obj = RuStoreError.new(data)
on_confirm_purchase_failure.emit(purchase_id, obj)
# @param purchase_id Идентификатор покупки.
func delete_purchase(purchase_id: String):
_clientWrapper.deletePurchase(purchase_id)
func _on_delete_purchase_success(purchase_id: String):
on_delete_purchase_success.emit(purchase_id)
func _on_delete_purchase_failure(purchase_id: String, data: String):
var obj = RuStoreError.new(data)
on_delete_purchase_failure.emit(purchase_id, obj)
# @param purchaseId Идентификатор покупки.
func get_purchase_info(purchase_id: String):
_clientWrapper.getPurchaseInfo(purchase_id)
func _on_get_purchase_info_success(data: String):
var obj = RuStorePurchase.new(data)
on_get_purchase_info_success.emit(obj)
func _on_get_purchase_info_failure(purchase_id: String, data: String):
var obj = RuStoreError.new(data)
on_get_purchase_info_failure.emit(purchase_id, obj)
# Debug logs
func _on_payment_logger_debug(data: String, message: String, tag: String):
var obj = RuStoreError.new(data)
on_payment_logger_debug.emit(obj, message, tag)
func _on_payment_logger_error(data: String, message: String, tag: String):
var obj = RuStoreError.new(data)
on_payment_logger_error.emit(obj, message, tag)
func _on_payment_logger_info(data: String, message: String, tag: String):
var obj = RuStoreError.new(data)
on_payment_logger_info.emit(obj, message, tag)
func _on_payment_logger_verbose(data: String, message: String, tag: String):
var obj = RuStoreError.new(data)
on_payment_logger_verbose.emit(obj, message, tag)
func _on_payment_logger_warning(data: String, message: String, tag: String):
var obj = RuStoreError.new(data)
on_payment_logger_warning.emit(obj, message, tag)