Перейти к содержанию

Использование SDK#

1. Инициализация#

import ru.tipay.billingsdk.BillingSDK
val appPackage = "com.application.package"
val sdk = BillingSDK.initialize(appPackage)

2. Получение списка доступных продуктов#

sdk.getProductsList { response ->
    response?.data?.let {
        // fill products list
    }
}

3. Запуск платежа и ожидание результата#

val product : ProductItem = ...

sdk.showPaymentActivity(
    requireActivity(),
    product
) { status ->
    handlePaymentStatus(status)
}

private fun handlePaymentStatus(status: BillingStatus?) {
    // TODO: handle status
}

Или:

sdk.showPaymentActivity(
    activity,
    product
) { status ->
    status?.let {
        when (status) {
            is BillingStatus.SuccessPayment -> {
                val orderId = status.orderId
                val orderToken = status.orderToken
                // payment success

                // TODO Send verification request to developer server

                sdk.acknowledgeOrder(orderId!!) {isSuccessful -> {
                        // Give items to user
                    }
                }
            }
            is BillingStatus.FailurePayment -> {
                val error = status.error
                // payment error
            }
            else -> {
                // payment canceled by user
            }
        }
    }
}

Опционально: получение списка заказов#

Можно использовать, например, при запуске приложения

val state : List<OrderState> = ...

billingSDK?.getOrderList(state) { orderList ->
    orderList?.let {
        // TODO process orders list
    }
}

Опционально: создание заказа#

val product : ProductItem = ...

sdk.createOrder(
    product.sku
) { response ->
    response?.data?.let {
        val orderId = it.orderId
        val orderToken = it.orderToken
    }
}

Опционально: ожидание смены статуса заказа#

sdk.listenToOrder(
    orderId
) { isSuccess, orderState ->
    // process result
}