Quellcode durchsuchen

카카오페이 임시 커밋

card007 vor 5 Jahren
Ursprung
Commit
3920d9838e

+ 48 - 3
src/main/java/com/style24/core/biz/service/TscKakaoPayService.java

@@ -64,9 +64,9 @@ public class TscKakaoPayService {
 			params.add("quantity", order.getOrdQty()+"");
 			params.add("total_amount", order.getRealOrdAmt()+"");
 			params.add("tax_free_amount", "0");
-			params.add("approval_url", PROTOCOL + env.getProperty("domain.front"));
-			params.add("fail_url", PROTOCOL + env.getProperty("domain.front"));
-			params.add("cancel_url", PROTOCOL + env.getProperty("domain.front"));
+			params.add("approval_url", order.getApprovalUrl());
+			params.add("fail_url", order.getFailUrl());
+			params.add("cancel_url", order.getCancelUrl());
 
 			// Header
 			HttpHeaders headers = new HttpHeaders();
@@ -92,5 +92,50 @@ public class TscKakaoPayService {
 		
 		return map;
 	}
+
+	/**
+	 * 카카오페이 승인 처리
+	 *
+	 * @param Order
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 03. 04
+	 */
+	@Transactional("shopTxnManager")
+	public GagaMap approveKakaoPayment(Order order) {
+		GagaMap map = new GagaMap();
+		String approvePaymentUrl = env.getProperty("kakao.approvePaymentUrl");
+		try {
+			MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+			params.add("cid", env.getProperty("kakao.cid"));
+			params.add("tid", order.getPgTid());
+			params.add("partner_order_id", order.getOrdNo()+"");
+			params.add("partner_user_id", order.getCustNo()+"");
+			params.add("pg_token", order.getPgToken());
+
+			// Header
+			HttpHeaders headers = new HttpHeaders();
+			headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+			headers.set("Authorization", "KakaoAK " + env.getProperty("kakao.adminKey"));
+
+			HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(params, headers);
+			URI url = URI.create(approvePaymentUrl);
+
+			// POST방식으로 호출
+			ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
+			log.info("responseEntity.getStatusCode(): {} ", responseEntity.getStatusCode());
+
+			String jsonResult = responseEntity.getBody();
+			log.info("responseEntity.getBody(): {} ", jsonResult);
+
+			Gson gson = new GsonBuilder().create();
+			map = gson.fromJson(jsonResult, GagaMap.class); //access_token, refresh_token
+
+		} catch (Exception e) {
+			log.error(e.getMessage());
+		}
+
+		return map;
+	}
 	
 }

+ 1 - 1
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -805,7 +805,7 @@ public class TscConstants {
 
 	// 프론트 구분
 	public enum FrontGb {
-		MOBIEL("M"),
+		MOB("M"),
 		PC("P");
 
 		private String value;

+ 6 - 0
src/main/java/com/style24/persistence/domain/Order.java

@@ -520,6 +520,12 @@ public class Order extends TscBaseDomain {
 	private int cancelCount;
 	private int exchangeCount;
 	private int returnCount;
+	
+	// 카카오페이
+	private String approvalUrl;
+	private String failUrl;
+	private String cancelUrl;
+	private String pgToken;
 
 	// 암호화 대상 복호화 처리
 	public String getCustNm() {

+ 3 - 0
src/main/java/com/style24/persistence/domain/Payment.java

@@ -45,4 +45,7 @@ public class Payment extends TscBaseDomain {
 	private String cashYn;
 	private String cashTrCode;
 	private String cashIdInfo;
+	
+	// KAKAOPAY
+	private String aid;
 }