From 2e9a18793570d4232f36f42c6f24d2602bcdc494 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 22 Mar 2024 20:38:08 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B5=AC=EA=B8=80=20=EC=9D=B8=20=EC=95=B1=20?= =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EA=B2=80=EC=A6=9D=20=EA=B3=BC=EC=A0=95=20?= =?UTF-8?q?try/catch=EB=A1=9C=20=EC=98=88=EC=99=B8=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/can/charge/ChargeService.kt | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) 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 cbc4a14..cb22b78 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 @@ -210,30 +210,35 @@ class ChargeService( ?: throw SodaException("로그인 정보를 확인해주세요.") if (charge.payment!!.paymentGateway == PaymentGateway.GOOGLE_IAP) { - androidPublisher.purchases().products() - .consume("kr.co.vividnext.sodalive", request.productId, request.purchaseToken) - .execute() + try { + androidPublisher.purchases().products() + .consume("kr.co.vividnext.sodalive", request.productId, request.purchaseToken) + .execute() - val response = androidPublisher.purchases().products() - .get("kr.co.vividnext.sodalive", request.productId, request.purchaseToken) - .execute() ?: throw SodaException("결제정보에 오류가 있습니다.") - if ( - response.purchaseState == 0 && - response.consumptionState == 1 && - charge.payment?.status == PaymentStatus.REQUEST - ) { - charge.payment?.receiptId = response.purchaseToken - charge.payment?.method = "구글(인 앱 결제)" - charge.payment?.status = PaymentStatus.COMPLETE - member.charge(charge.chargeCan, charge.rewardCan, "aos") + val response = androidPublisher.purchases().products() + .get("kr.co.vividnext.sodalive", request.productId, request.purchaseToken) + .execute() ?: throw SodaException("결제정보에 오류가 있습니다.") + if ( + response.purchaseState == 0 && + response.consumptionState == 1 && + charge.payment?.status == PaymentStatus.REQUEST + ) { + charge.payment?.receiptId = response.purchaseToken + charge.payment?.method = "구글(인 앱 결제)" + charge.payment?.status = PaymentStatus.COMPLETE + member.charge(charge.chargeCan, charge.rewardCan, "aos") - applicationEventPublisher.publishEvent( - ChargeSpringEvent( - chargeId = charge.id!!, - memberId = member.id!! + applicationEventPublisher.publishEvent( + ChargeSpringEvent( + chargeId = charge.id!!, + memberId = member.id!! + ) ) - ) - } else { + } else { + throw SodaException("결제정보에 오류가 있습니다.") + } + } catch (e: Exception) { + e.printStackTrace() throw SodaException("결제정보에 오류가 있습니다.") } } else {