Compare commits
2 Commits
02ef706fc2
...
cb2e3ea581
| Author | SHA1 | Date | |
|---|---|---|---|
| cb2e3ea581 | |||
| 42eaf1d5e3 |
@@ -70,8 +70,9 @@ data class PayverseVerifyResponse(
|
|||||||
val transactionMessage: String,
|
val transactionMessage: String,
|
||||||
val orderId: String,
|
val orderId: String,
|
||||||
val customerId: String,
|
val customerId: String,
|
||||||
val processingCurrency: String,
|
val productName: String,
|
||||||
val processingAmount: BigDecimal
|
val requestCurrency: String,
|
||||||
|
val requestAmount: BigDecimal
|
||||||
)
|
)
|
||||||
|
|
||||||
data class PayverseWebhookRequest(
|
data class PayverseWebhookRequest(
|
||||||
|
|||||||
@@ -102,6 +102,11 @@ class ChargeService(
|
|||||||
return when (charge.payment?.status) {
|
return when (charge.payment?.status) {
|
||||||
PaymentStatus.REQUEST -> {
|
PaymentStatus.REQUEST -> {
|
||||||
// 성공 조건 검증
|
// 성공 조건 검증
|
||||||
|
val mid = if (request.requestCurrency == "KRW") {
|
||||||
|
payverseMid
|
||||||
|
} else {
|
||||||
|
payverseUsdMid
|
||||||
|
}
|
||||||
val expectedSign = DigestUtils.sha512Hex(
|
val expectedSign = DigestUtils.sha512Hex(
|
||||||
String.format(
|
String.format(
|
||||||
"||%s||%s||%s||%s||%s||",
|
"||%s||%s||%s||%s||%s||",
|
||||||
@@ -110,11 +115,7 @@ class ChargeService(
|
|||||||
} else {
|
} else {
|
||||||
payverseUsdSecretKey
|
payverseUsdSecretKey
|
||||||
},
|
},
|
||||||
if (request.requestCurrency == "KRW") {
|
mid,
|
||||||
payverseMid
|
|
||||||
} else {
|
|
||||||
payverseUsdMid
|
|
||||||
},
|
|
||||||
request.orderId,
|
request.orderId,
|
||||||
request.requestAmount,
|
request.requestAmount,
|
||||||
request.approvalDay
|
request.approvalDay
|
||||||
@@ -126,7 +127,7 @@ class ChargeService(
|
|||||||
) == 0
|
) == 0
|
||||||
|
|
||||||
val isSuccess = request.resultStatus == "SUCCESS" &&
|
val isSuccess = request.resultStatus == "SUCCESS" &&
|
||||||
request.mid == payverseMid &&
|
request.mid == mid &&
|
||||||
charge.title == request.productName &&
|
charge.title == request.productName &&
|
||||||
isAmountMatch &&
|
isAmountMatch &&
|
||||||
request.sign == expectedSign
|
request.sign == expectedSign
|
||||||
@@ -346,10 +347,13 @@ class ChargeService(
|
|||||||
val verifyResponse = objectMapper.readValue(body, PayverseVerifyResponse::class.java)
|
val verifyResponse = objectMapper.readValue(body, PayverseVerifyResponse::class.java)
|
||||||
println(verifyResponse)
|
println(verifyResponse)
|
||||||
|
|
||||||
|
val customerId = "${serverEnv}_user_${member.id!!}"
|
||||||
val isSuccess = verifyResponse.resultStatus == "SUCCESS" &&
|
val isSuccess = verifyResponse.resultStatus == "SUCCESS" &&
|
||||||
verifyResponse.transactionStatus == "SUCCESS" &&
|
verifyResponse.transactionStatus == "SUCCESS" &&
|
||||||
verifyResponse.orderId.toLongOrNull() == charge.id &&
|
verifyResponse.orderId.toLongOrNull() == charge.id &&
|
||||||
verifyResponse.processingAmount.compareTo(charge.can!!.price) == 0
|
verifyResponse.productName == charge.title &&
|
||||||
|
verifyResponse.customerId == customerId &&
|
||||||
|
verifyResponse.requestAmount.compareTo(charge.can!!.price) == 0
|
||||||
println(isSuccess)
|
println(isSuccess)
|
||||||
|
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
@@ -363,7 +367,7 @@ class ChargeService(
|
|||||||
charge.payment?.method = mappedMethod ?: verifyResponse.schemeCode
|
charge.payment?.method = mappedMethod ?: verifyResponse.schemeCode
|
||||||
charge.payment?.status = PaymentStatus.COMPLETE
|
charge.payment?.status = PaymentStatus.COMPLETE
|
||||||
// 통화코드 설정
|
// 통화코드 설정
|
||||||
charge.payment?.locale = verifyResponse.processingCurrency
|
charge.payment?.locale = verifyResponse.requestCurrency
|
||||||
|
|
||||||
member.charge(charge.chargeCan, charge.rewardCan, "pg")
|
member.charge(charge.chargeCan, charge.rewardCan, "pg")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user