Использование SDK#
1. Инициализация#
2. Получение списка доступных продуктов#
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
}
}