dependencies {
val billing_version = "8.0.0"
implementation("com.android.billingclient:billing-ktx:$billing_version")
}
**BillingClient**는 Google Play 결제 라이브러리와 앱의 나머지 부분 간의 통신을 위한 기본 인터페이스.
BillingClient 을 하나만 열어두는게 좋음.앱이 닫히면 연결을 종료해야 함. → onPause, onStop에 연결 종료 필요?
responseCode == Ok 가 아닐 때 따로 에러처리는 하지않는가?
private val purchasesUpdatedListener = PurchasesUpdatedListener { result, purchases ->
Log.d("purchasesUpdateListener", "$result $purchases")
if (result.responseCode == BillingResponseCode.OK && !purchases.isNullOrEmpty()) {
purchases.forEach { purchase ->
val token = purchase.purchaseToken
val uuid = purchase.products.firstOrNull() ?: return@forEach
_purchaseProduct.value = PurchaseProduct(uuid = uuid, credential = token)
}
}
} // PurchasesUpdatedListener -> 실제 결제가 이루어지고 나면 들어오는 결과값 리스너
// 에러 처리 필요
else{
}
private var billingClient = BillingClient.newBuilder(context)
.setListener(purchasesUpdatedListener)
// Configure other settings.
.build()
BillingResult 형식으로 오류를 반환
SERVICE_DISCONNECTED 오류 코드가 수신되면 앱에서 Google Play와의 연결을 다시 초기화해야 한다.