728x90
20221208(목)
- 목차
- 무통장 결제
< 무통장 결제 >
- Order 컨트롤러 무통장 결제 코드추가
// 무통장 결제. /orderSave
@PostMapping("/orderSave")
public String orderSave(String type, OrderVO o_vo, OrderDetailVO od_vo, PaymentVO p_vo, HttpSession session, Model model) {
p_vo.setPay_tot_price(p_vo.getPay_nobank_price());
log.info("주문정보: " + o_vo);
log.info("주문상세정보: " + od_vo);
log.info("결제정보: " + p_vo);
String mem_id = ((MemberVO)session.getAttribute("loginStatus")).getMem_id();
//주문번호가 시퀀스 작업(중요)
o_vo.setOdr_code(orderService.getOrderSequence());
o_vo.setMem_id(mem_id);
p_vo.setMem_id(mem_id);
od_vo.setOdr_code(o_vo.getOdr_code());
//주문정보 저장하기.
if(type.equals("cart")) {
orderService.orderSave(o_vo, p_vo); // 주문상세정보를 장바구니를 통하여, 데이타 작업
}else if(type.equals("direct")) {
orderService.orderDirectSave(o_vo, od_vo, p_vo); // 주문작성하기 페이지에서 바로구매 상품정보 데이타 작업
}
return "redirect:/order/orderComplete";
}
- orderListInfo.jsp
- orderListInfo.jsp의 script 부분
<script>
$(document).ready(function(){
//주문자와 배송지 정보를 동일하게 하고자 할때 사용.
$("#same").on("click", function() {
if($("#same").is(":checked") == true) {
$("#mem_name").val($("#s_mem_name").val());
$("#mem_phone").val($("#s_mem_phone").val());
}else {
$("#mem_name").val("");
$("#mem_phone").val("");
}
});
// 자택또는 타지역 라디오버튼 클릭
$("input[name='receiveAddr']").on("click", function() {
if($("input[name='receiveAddr']:checked").val() == 1) { //자택체크
$("#sample2_postcode").val($("#s_mem_zipcode").val());
$("#sample2_address").val($("#s_mem_addr").val());
$("#sample2_detailAddress").val($("#s_mem_addr_d").val());
}else if($("input[name='receiveAddr']:checked").val() == 2) { // 타지역체크
$("#sample2_postcode").val("");
$("#sample2_address").val("");
$("#sample2_detailAddress").val("");
}
});
//결제방법선택
$("#pay_method").on("change", function() {
/*
if($("#pay_method option:selected").val() == "") {
alert("결제 방법을 선택하세요");
return;
}
*/
$("#btnOrder").attr("disabled", false); // 주문하기버튼 활성화
$("input#kakao_pay").attr("disabled", true); // 카카오페이 버튼. 비활성화
if($("#pay_method option:selected").val() == "카카오페이") {
$("#btnOrder").attr("disabled", true); // 주문하기 비활성화
$("input#kakao_pay").attr("disabled", false); // 카카오버튼 활성화
alert("카카오페이 이미지를 클릭하면 결제가 진행됩니다.");
}
});
//카카오페이 결제버튼 클릭. ajax요청
$("#kakao_pay").on("click", function(e) {
e.preventDefault(); // submit기능 비활성화
let odr_total_price = $("input[name='odr_total_price']").val();
$.ajax({
url: '/order/orderPay',
data: {
type : '${type}',
// int totalamount
totalamount : odr_total_price,
// OrderVO o_vo
odr_name : $("input[name='odr_name']").val(),
odr_zipcode : $("input[name='odr_zipcode']").val(),
odr_addr: $("input[name='odr_addr']").val(),
odr_addr_d : $("input[name='odr_addr_d']").val(),
odr_phone : $("input[name='odr_phone']").val(),
odr_total_price : odr_total_price,
// OrderDetailVO od_vo 주문상세정보
// odr_code : ,
pdt_num : $("input[name='pdt_num']").val(),
odr_amount : $("input[name='cart_amount']").val(),
odr_price : $("input[name='sales_price']").val(),
// PaymentVO p_vo
pay_method : $("#pay_method option:selected").val(),
pay_tot_price : odr_total_price,
},
dataType : 'json', // 기본값 : xml. 또는 서버측에서 보내오는 MIME정보를 해석해서 자동으로 인식하게 해준다.
type: 'get',
success : function(response) {
// next_redirect_pc_url :
// pg_token 키 쿼리스트링
console.log("응답: " + response);
//alert(response.tid);
alert(response.next_redirect_pc_url);
location.href = response.next_redirect_pc_url;
}
});
})
let orderForm = $("#orderForm");
// 무통장 결제
$("#btnOrder").on("click", function() {
orderForm.attr("method", "post");
orderForm.attr("action", "/order/orderSave");
//주문상세VO
$("#od_pdt_num").val($("#d_pdt_num").val());
$("#od_odr_amount").val($("#d_odr_amount").val());
$("#od_odr_price").val($("#d_odr_price").val());
orderForm.submit();
});
//사용자정의함수
// 콤마제거하기. 연산할 때 사용
$.withoutCommas = function(x) {
return x.toString().replace(",", "");
}
//3자리마다 콤마찍기. 표시할 때 사용.
$.numberWithCommas = function(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
}); // ready() 끝
//sum_price가격 변경
function fn_sum_price() {
let sum_price = 0;
$("table#cartlist span.sales_price").each(function(index, item){
sum_price += parseInt($.withoutCommas($(item).text()));
});
$("span#sum_price").text($.numberWithCommas(sum_price));
}
</script>
ex) 실행화면
??
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[98일차] 관리자 주문목록 세부수정 / 페이지 번호 기능 활성화 (0) | 2022.12.16 |
---|---|
[97일차] 상품 상세페이지 버튼 추가 / 관리자 주문목록 페이지 (0) | 2022.12.11 |
[95일차] 코틀린 배열 / 코틀린 컬렉션 / 후기 댓글 수정하기 (0) | 2022.12.11 |
[94일차] 코틀린(변수와 함수 / 기초 데이타 타입) / 상품후기댓글 수정/삭제 버튼 (0) | 2022.12.07 |
[93일차] 안드로이드 코틀린 / 상품 후기 등록, 댓글 리스트 및 페이징 (0) | 2022.12.05 |