Merge pull request '구글 인 앱 결제 검증 코드 수정' (#144) from test into main
Reviewed-on: #144
This commit is contained in:
		| @@ -1,12 +1,7 @@ | |||||||
| package kr.co.vividnext.sodalive.can.charge | package kr.co.vividnext.sodalive.can.charge | ||||||
|  |  | ||||||
| import com.fasterxml.jackson.databind.ObjectMapper | import com.fasterxml.jackson.databind.ObjectMapper | ||||||
| import com.google.api.client.http.javanet.NetHttpTransport |  | ||||||
| import com.google.api.client.json.gson.GsonFactory |  | ||||||
| import com.google.api.services.androidpublisher.AndroidPublisher | import com.google.api.services.androidpublisher.AndroidPublisher | ||||||
| import com.google.api.services.androidpublisher.AndroidPublisherScopes |  | ||||||
| import com.google.auth.http.HttpCredentialsAdapter |  | ||||||
| import com.google.auth.oauth2.GoogleCredentials |  | ||||||
| import kr.co.bootpay.Bootpay | import kr.co.bootpay.Bootpay | ||||||
| import kr.co.vividnext.sodalive.can.CanRepository | import kr.co.vividnext.sodalive.can.CanRepository | ||||||
| import kr.co.vividnext.sodalive.can.charge.event.ChargeSpringEvent | import kr.co.vividnext.sodalive.can.charge.event.ChargeSpringEvent | ||||||
| @@ -29,7 +24,6 @@ import org.springframework.http.HttpHeaders | |||||||
| import org.springframework.security.core.userdetails.User | import org.springframework.security.core.userdetails.User | ||||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||||
| import org.springframework.transaction.annotation.Transactional | import org.springframework.transaction.annotation.Transactional | ||||||
| import java.io.FileInputStream |  | ||||||
|  |  | ||||||
| @Service | @Service | ||||||
| @Transactional(readOnly = true) | @Transactional(readOnly = true) | ||||||
| @@ -43,6 +37,8 @@ class ChargeService( | |||||||
|     private val okHttpClient: OkHttpClient, |     private val okHttpClient: OkHttpClient, | ||||||
|     private val applicationEventPublisher: ApplicationEventPublisher, |     private val applicationEventPublisher: ApplicationEventPublisher, | ||||||
|  |  | ||||||
|  |     private val androidPublisher: AndroidPublisher, | ||||||
|  |  | ||||||
|     @Value("\${bootpay.application-id}") |     @Value("\${bootpay.application-id}") | ||||||
|     private val bootpayApplicationId: String, |     private val bootpayApplicationId: String, | ||||||
|     @Value("\${bootpay.private-key}") |     @Value("\${bootpay.private-key}") | ||||||
| @@ -50,9 +46,7 @@ class ChargeService( | |||||||
|     @Value("\${apple.iap-verify-sandbox-url}") |     @Value("\${apple.iap-verify-sandbox-url}") | ||||||
|     private val appleInAppVerifySandBoxUrl: String, |     private val appleInAppVerifySandBoxUrl: String, | ||||||
|     @Value("\${apple.iap-verify-url}") |     @Value("\${apple.iap-verify-url}") | ||||||
|     private val appleInAppVerifyUrl: String, |     private val appleInAppVerifyUrl: String | ||||||
|     @Value("\${firebase.secret-key-path}") |  | ||||||
|     private val secretKeyPath: String |  | ||||||
| ) { | ) { | ||||||
|  |  | ||||||
|     @Transactional |     @Transactional | ||||||
| @@ -215,7 +209,7 @@ class ChargeService( | |||||||
|             ?: throw SodaException("로그인 정보를 확인해주세요.") |             ?: throw SodaException("로그인 정보를 확인해주세요.") | ||||||
|  |  | ||||||
|         if (charge.payment!!.paymentGateway == PaymentGateway.GOOGLE_IAP) { |         if (charge.payment!!.paymentGateway == PaymentGateway.GOOGLE_IAP) { | ||||||
|             val response = getAndroidPublisher().purchases().products() |             val response = androidPublisher.purchases().products() | ||||||
|                 .get("kr.co.vividnext.sodalive", request.productId, request.purchaseToken) |                 .get("kr.co.vividnext.sodalive", request.productId, request.purchaseToken) | ||||||
|                 .execute() ?: throw SodaException("결제정보에 오류가 있습니다.") |                 .execute() ?: throw SodaException("결제정보에 오류가 있습니다.") | ||||||
|  |  | ||||||
| @@ -304,16 +298,4 @@ class ChargeService( | |||||||
|             throw SodaException("결제를 완료하지 못했습니다.") |             throw SodaException("결제를 완료하지 못했습니다.") | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private fun getAndroidPublisher(): AndroidPublisher { |  | ||||||
|         val jsonFactory = GsonFactory.getDefaultInstance() |  | ||||||
|         val httpTransport = NetHttpTransport() |  | ||||||
|  |  | ||||||
|         val credential = GoogleCredentials.fromStream(FileInputStream(secretKeyPath)) |  | ||||||
|             .createScoped(listOf(AndroidPublisherScopes.ANDROIDPUBLISHER)) |  | ||||||
|  |  | ||||||
|         return AndroidPublisher.Builder(httpTransport, jsonFactory, HttpCredentialsAdapter(credential)) |  | ||||||
|             .setApplicationName("소다라이브") |  | ||||||
|             .build() |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user