diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java index 588eae7c..aa2a898a 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java @@ -1,6 +1,9 @@ package com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service; import com.fasterxml.jackson.databind.ObjectMapper; +import com.stripe.StripeClient; +import com.stripe.model.Refund; +import com.stripe.param.RefundCreateParams; import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService; import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper; import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService; @@ -1151,6 +1154,30 @@ public class BORtngudrefndService { throw new WnbtRestException("잘못된 요청입니다. 관리자에게 문의하세요."); } + } else if ("stripe".equals(setle.getPgCmpnyNm())) { + log.debug("stripe 취소 진입"); + + StripeClient client = new StripeClient("sk_test_51TyR73GgW2hla0lOFbAPuSlGp3nDswNX54tikyI2OxFDtUU8LDC6ooahlgfV5qXPMD2y3V035UKhzz3LA1RcaF6700Lck9uPVR"); + RefundCreateParams params = + RefundCreateParams.builder() + .setPaymentIntent(setle.getPgInnb()) + .setAmount(Long.valueOf(cancelAmt)) + .build(); + Refund refund = client.v1().refunds().create(params); + String resultCode = refund.getStatus(); + + if ("succeeded".equals(resultCode)) { + // succeeded : 취소성공 + log.debug(resultCode); + message.put("setleStatus", resultCode); + message.put("setleMessage", "Refund is expected to arrive in customer’s bank"); + } else { + log.debug(resultCode); + message.put("setleStatus", resultCode); + message.put("setleMessage", resultCode); + logDtlCn = "잘못된 요청입니다. 관리자에게 문의하세요."; + throw new WnbtRestException("잘못된 요청입니다. 관리자에게 문의하세요."); + } } }