diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt index 4f3b017..31e9310 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt @@ -269,10 +269,21 @@ class ChargeService( productId, purchaseToken ) - charge.payment!!.status = PaymentStatus.COMPLETE - member.charge(charge.chargeCan, 0, "aos") - return true + val response = androidPublisher.purchases().products() + .get("kr.co.vividnext.sodalive", productId, purchaseToken) + .execute() ?: throw SodaException("결제정보에 오류가 있습니다.") + + if (response.consumptionState == 1) { + charge.payment!!.status = PaymentStatus.COMPLETE + member.charge(charge.chargeCan, 0, "aos") + + return true + } else { + attempt += 1 + Thread.sleep(delay) + delay *= 2 + } } catch (e: Exception) { lastError = e attempt += 1 @@ -280,6 +291,7 @@ class ChargeService( delay *= 2 } } + lastError?.printStackTrace() return false }