|
|
@@ -1,6 +1,13 @@
|
|
|
package com.style24.core.biz.service;
|
|
|
|
|
|
+import java.lang.reflect.Type;
|
|
|
import java.net.URI;
|
|
|
+import java.nio.charset.Charset;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.function.DoubleToIntFunction;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -20,10 +27,13 @@ import com.gagaframework.web.rest.server.GagaResponseStatus;
|
|
|
import com.gagaframework.web.util.GagaFileUtil;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.google.gson.GsonBuilder;
|
|
|
+import com.google.gson.reflect.TypeToken;
|
|
|
import com.style24.core.biz.dao.TscPointDao;
|
|
|
import com.style24.core.biz.thirdparty.KakaoPayApi;
|
|
|
import com.style24.core.support.env.TscConstants;
|
|
|
import com.style24.core.support.message.TscMessageByLocale;
|
|
|
+import com.style24.persistence.domain.CustCoupon;
|
|
|
+import com.style24.persistence.domain.KakaoPay;
|
|
|
import com.style24.persistence.domain.Order;
|
|
|
import com.style24.persistence.domain.Payment;
|
|
|
import com.style24.persistence.domain.Point;
|
|
|
@@ -56,12 +66,12 @@ public class TscKakaoPayService {
|
|
|
* 카카오페이 결제준비 처리
|
|
|
*
|
|
|
* @param Order
|
|
|
- * @return GagaMap
|
|
|
+ * @return KakaoPay
|
|
|
* @author card007
|
|
|
* @since 2021. 03. 03
|
|
|
*/
|
|
|
@Transactional("shopTxnManager")
|
|
|
- public GagaMap kakaoPaymentReady(Order order) {
|
|
|
+ public KakaoPay kakaoPaymentReady(Order order) {
|
|
|
// API 전송 URL 설정
|
|
|
String paymentReadyUrl = env.getProperty("kakao.paymentReadyUrl");
|
|
|
|
|
|
@@ -104,44 +114,40 @@ public class TscKakaoPayService {
|
|
|
params.add("pg_token", order.getPgToken());
|
|
|
|
|
|
// 카카오페이 API 전송
|
|
|
- GagaMap map = kakaoPayApi.kakaoPaymentApi(params, approvePaymentUrl);
|
|
|
+ KakaoPay kakaoPay = kakaoPayApi.kakaoPaymentApi(params, approvePaymentUrl);
|
|
|
|
|
|
// 카카오페이 API 전송 결과 처리
|
|
|
Payment payment = new Payment();
|
|
|
Gson gson = new GsonBuilder().create();
|
|
|
- int statusCode = map.getInt("statusCode");
|
|
|
+ int statusCode = kakaoPay.getStatusCode();
|
|
|
|
|
|
// 승인 성공일때 200
|
|
|
if (statusCode == 200) {
|
|
|
- payment.setPgTradeNo(map.getString("aid"));
|
|
|
- payment.setPgTid(map.getString("tid"));
|
|
|
- payment.setPgShopId(map.getString("cid"));
|
|
|
- payment.setOrdNo(Integer.parseInt(map.getString("partner_order_id")));
|
|
|
- payment.setCustNo(Integer.parseInt(map.getString("partner_user_id")));
|
|
|
- payment.setKakaoMethodType(map.getString("payment_method_type"));
|
|
|
-
|
|
|
- GagaMap amount = gson.fromJson(map.getString("amount"), GagaMap.class);
|
|
|
- payment.setPayAmt((int)amount.getDouble("total"));
|
|
|
- payment.setKakaoPoint((int)amount.getDouble("point"));
|
|
|
- payment.setKakaoDiscount((int)amount.getDouble("discount"));
|
|
|
+ payment.setPgTradeNo(kakaoPay.getAid());
|
|
|
+ payment.setPgTid(kakaoPay.getTid());
|
|
|
+ payment.setPgShopId(kakaoPay.getCid());
|
|
|
+ payment.setOrdNo(Integer.parseInt(kakaoPay.getPartnerOrderId()));
|
|
|
+ payment.setCustNo(Integer.parseInt(kakaoPay.getPartnerUserId()));
|
|
|
+ payment.setKakaoMethodType(kakaoPay.getPaymentMethodType());
|
|
|
+ payment.setPayAmt(kakaoPay.getAmount().getTotal());
|
|
|
+ payment.setKakaoPoint(kakaoPay.getAmount().getPoint());
|
|
|
+ payment.setKakaoDiscount(kakaoPay.getAmount().getDiscount());
|
|
|
|
|
|
// 카카오페이 카드결제 시 카드정보 설정
|
|
|
- if ("CARD".equals(map.getString("payment_method_type"))) {
|
|
|
- GagaMap cardInfo = gson.fromJson(map.getString("card_info"), GagaMap.class);
|
|
|
- payment.setCardKind(cardInfo.getString("purchase_corp"));
|
|
|
- payment.setCardNm(cardInfo.getString("issuer_corp"));
|
|
|
- payment.setCardType("신용".equals(cardInfo.getString("card_type")) ? "N" : "Y");
|
|
|
- payment.setCardMips(cardInfo.getString("install_month"));
|
|
|
+ if ("CARD".equals(kakaoPay.getPaymentMethodType())) {
|
|
|
+ payment.setCardKind(kakaoPay.getCardInfo().getPurchaseCorp());
|
|
|
+ payment.setCardNm(kakaoPay.getCardInfo().getIssuerCorp());
|
|
|
+ payment.setCardType("신용".equals(kakaoPay.getCardInfo().getCardType()) ? "N" : "Y");
|
|
|
+ payment.setCardMips(kakaoPay.getCardInfo().getInstallMonth());
|
|
|
}
|
|
|
|
|
|
payment.setResCd(String.valueOf(statusCode));
|
|
|
payment.setResMsg(message.getMessage("SUCC_0004"));
|
|
|
} else {
|
|
|
- int code = (int) map.getDouble("code");
|
|
|
- String msg = map.getString("msg");
|
|
|
- GagaMap extras = gson.fromJson(map.getString("extras"), GagaMap.class);
|
|
|
- String resultCode = extras.getString("method_result_code");
|
|
|
- String resultMessage = extras.getString("method_result_message");
|
|
|
+ int code = Integer.parseInt(kakaoPay.getCode());
|
|
|
+ String msg = kakaoPay.getMsg();
|
|
|
+ String resultCode = kakaoPay.getExtras().getMethodResultCode();
|
|
|
+ String resultMessage = kakaoPay.getExtras().getMethodResultMessage();
|
|
|
|
|
|
payment.setResCd(String.valueOf(code));
|
|
|
payment.setResMsg(resultMessage);
|
|
|
@@ -159,7 +165,7 @@ public class TscKakaoPayService {
|
|
|
* @since 2021. 03. 04
|
|
|
*/
|
|
|
@Transactional("shopTxnManager")
|
|
|
- public GagaMap getKakaoPaymentOrder(Order order) {
|
|
|
+ public KakaoPay getKakaoPaymentOrder(Order order) {
|
|
|
// API 전송 URL 설정
|
|
|
String paymentOrderUrl = env.getProperty("kakao.paymentOrderUrl");
|
|
|
|
|
|
@@ -169,10 +175,10 @@ public class TscKakaoPayService {
|
|
|
params.add("tid", order.getPgTid());
|
|
|
|
|
|
// 카카오페이 API 전송
|
|
|
- GagaMap map = kakaoPayApi.kakaoPaymentApi(params, paymentOrderUrl);
|
|
|
+ KakaoPay pay = kakaoPayApi.kakaoPaymentApi(params, paymentOrderUrl);
|
|
|
|
|
|
// 카카오페이 API 전송 결과 처리
|
|
|
- GagaMap result = new GagaMap();
|
|
|
+ /*GagaMap result = new GagaMap();
|
|
|
Gson gson = new GsonBuilder().create();
|
|
|
result.setString("tid", map.getString("tid"));
|
|
|
result.setString("cid", map.getString("cid"));
|
|
|
@@ -180,18 +186,25 @@ public class TscKakaoPayService {
|
|
|
result.setString("partner_order_id", map.getString("partner_order_id"));
|
|
|
result.setString("partner_user_id", map.getString("partner_user_id"));
|
|
|
result.setString("payment_method_type", map.getString("payment_method_type"));
|
|
|
- result.set("amount", gson.fromJson(map.getString("amount"), GagaMap.class));
|
|
|
- result.set("canceled_amount", gson.fromJson(map.getString("canceled_amount"), GagaMap.class));
|
|
|
- result.set("cancel_available_amount", gson.fromJson(map.getString("cancel_available_amount"), GagaMap.class));
|
|
|
+ // result.set("amount", gson.fromJson(map.getString("amount"), GagaMap.class));
|
|
|
+ result.set("amount", map.get("amount"));
|
|
|
+ Map tmp = (Map) map.get("amount");
|
|
|
+ log.info("total >>> {}", jsonDoubleToInt(tmp.get("total")));
|
|
|
+ // result.set("canceled_amount", gson.fromJson(map.getString("canceled_amount"), GagaMap.class));
|
|
|
+ result.set("canceled_amount", map.get("canceled_amount"));
|
|
|
+ // result.set("cancel_available_amount", gson.fromJson(map.getString("cancel_available_amount"), GagaMap.class));
|
|
|
+ result.set("cancel_available_amount", map.get("cancel_available_amount"));
|
|
|
result.setString("item_name", map.getString("item_name"));
|
|
|
result.setString("item_code", map.getString("item_code"));
|
|
|
result.setDouble("quantity", map.getDouble("quantity"));
|
|
|
result.setString("created_at", map.getString("created_at"));
|
|
|
result.setString("approved_at", map.getString("approved_at"));
|
|
|
result.setString("canceled_at", map.getString("canceled_at"));
|
|
|
- result.set("selected_card_info", gson.fromJson(map.getString("selected_card_info"), GagaMap.class));
|
|
|
- result.set("payment_action_details", gson.fromJson(map.getString("payment_action_details"), GagaMap.class));
|
|
|
+ // result.set("selected_card_info", gson.fromJson(map.getString("selected_card_info"), GagaMap.class));
|
|
|
+ result.set("selected_card_info", map.get("selected_card_info"));
|
|
|
+ result.set("payment_action_details", map.get("payment_action_details"));*/
|
|
|
|
|
|
- return result;
|
|
|
+ return pay;
|
|
|
}
|
|
|
+
|
|
|
}
|