티스토리 뷰

하드 코딩으로 카카오페이 창을 띄우는 것은 성공, 

엔티티에서 정보를 읽어와서 띄우는 것은 못함.( 이게 엔티티를 안건들고, 컨트롤러, 서비스만 활용해서 되는지 잘 생각해보기)

 

처음 생각한 방식 

1. Payment 엔티티를 새로 만들어서 payment 관련된 정보들을 다 넣어줌. 

2. order와 연결해서 정보들을 싹 불러옴.. ..? 

 

두번째 생각한 방식 

1. order  entity에 컬럼 추가 

컬럼 pay_status를 추가해서 결제완료된것 확인하기 -->

2. 굳이 있어야 할 이유가 있을까?_ 그냥 결제가 되어야지만 orderstatus를 COMPLETED로 바꾸게 되게 만들면 되는 거 아닌가? 

3. 근데 그러면 orderstatus로 다 짜여졌던 로직들은 어떻게 되는 건지..! 

4....

 

 

세번째 생각한 방식

1.엔티티 건들지 않고 

controller, service, dto만 건드려서 하기! 

2. orderHist, 처럼 orderHistDto 만들어서, (이것도 order에 리스트로 아이템 리스트가 있었네..!) 

그러면 어떻게 해야하지..? 

 

네번째 생각한 방식

1. js에서 상품명은 (카카오페이결제하기)로 넣고, total price만 order에서 불러오기.//_일단 엔티티에 컬럼으로 넣어봄. 잘들어가는지 확인하기

 

일단 불러오려면 ajax 형식으로 바꿔보기 

 

function cancelOrder(orderId) {
    var token = $("meta[name='_csrf']").attr("content");
    var header = $("meta[name='_csrf_header']").attr("content");

    var url = "/order/" + orderId;
    var paramData = {
        orderId : orderId,
    };

    var param = JSON.stringify(paramData);

    $.ajax({
        url      : url,
        type     : "POST",
        contentType : "application/json",
        data     : param,
        beforeSend : function(xhr){
            /* 데이터를 전송하기 전에 헤더에 csrf값을 설정 */
            xhr.setRequestHeader(header, token);
        },
        dataType : "json",
        cache   : false,
        success  : function(result, status){
            alert("주문이 취소 되었습니다.");
            location.href='/orders/' + [[${page}]];
        },
        error : function(jqXHR, status, error){
            if(jqXHR.status == '401'){
                alert('로그인 후 이용해주세요');
                location.href='/members/login';
            } else{
                alert(jqXHR.responseText);
            }
        }
    });

 

    function payment(data) {
        IMP.init('imp71557002'); // 아임포트 관리자 콘솔에서 확인한 '가맹점 식별코드' 입력
        IMP.request_pay({
            pg: "kakaopay.TC0ONETIME", // pg사명 or pg사명.CID (잘못 입력할 경우, 기본 PG사가 띄워짐)
            pay_method: "card", // 지불 방법
            merchant_uid: "store-b3d9a437-6d28-4878-92a7-b1e86f121ac5"+ new Date().getTime(), // 가맹점 주문번호 (아임포트를 사용하는 가맹점에서 중복되지 않은 임의의 문자열을 입력)
            name: "도서", // 결제창에 노출될 상품명
            amount: 13700, // 금액
            buyer_email : "testiamport@naver.com",
            buyer_name : "홍길동",
            buyer_tel : "01012341234"
        }, function (rsp) { // callback
            if (rsp.success) {
                alert('결제가 완료되었습니다.');
            } else {
                alert("결제가 실패했습니다" + rsp.error_msg);
            }
        });
    }

 

다섯번째 방식 

https://github.com/StudyMateProject/Payment

 

GitHub - StudyMateProject/Payment: 결제api (아임포트)

결제api (아임포트). Contribute to StudyMateProject/Payment development by creating an account on GitHub.

github.com

엔티티 두개를 만들고 하나의 엔티티를 통해 형식을 json으로 바꿔주는 과정을 처리해서 송신하는 코드!

일단 지금 시작!

 

'코딩테스트' 카테고리의 다른 글

[백준 2039번] (브론즈1) 일곱 난쟁이  (1) 2024.02.07
백준 [2675번] 문자열 반복  (1) 2023.10.26
[백준] 10811번 바구니 뒤집기  (0) 2023.09.13
[백준] 3052번 나머지  (0) 2023.09.12
[백준] 10813번 공 바꾸기  (0) 2023.09.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함