<form action="Paytest.jsp">
<!-- 모달창 -->
<div id="popupModal" style="display: none;">
<div id="modalBody">
<span id="closeBtn">×</span>
<!-- 모달창안 -->
<div class="div_modal">
<h1>Add cash💵</h1>
<br>
<p>
<input type="radio" name="charge" value="5000" onclick="hideCustomInput()"> 5000원
</p>
<p>
<input type="radio" name="charge" value="10000" onclick="hideCustomInput()"> 10000원
</p>
<p>
<input type="radio" name="charge" value="30000" onclick="hideCustomInput()"> 30000원
</p>
<p>
<input type="radio" name="charge" value="50000" onclick="hideCustomInput()"> 50000원
</p>
<input type="radio" name="charge" id="customInputRadio" onclick="showCustomInput()"> 직접입력
<!-- 숨겨진 직접입력 값 입력 공간 -->
<input type="number" id="customInput" style="display: none;">
<!-- 값을 보내는 버튼 -->
<div class="modal_btn">
<input type="button" value="선택완료" onclick="sendChargeValue()" class="cash_input">
</div>
</div>
</div>
</div>
</form>
Paytest.jsp
<body>
<%
int charge=Integer.parseInt(request.getParameter("charge"));
UserDTO udto=(UserDTO) session.getAttribute("info");
String user_id=udto.getUser_id();
String user_name=udto.getUser_name();
String merchant_uid=UUID.randomUUID().toString();
%>
<button id="iamportPayment" type="button">결제하기</button>
<!-- <script src="js/PaymentAPI.js"></script> -->
<script>
//문서가 준비되면 제일 먼저 실행
$(document).ready(function () {
$("#iamportPayment").click(function () {
payment(); //버튼 클릭하면 호출
});
})
//버튼 클릭하면 실행
function payment(data) {
IMP.init('imp**');//아임포트 관리자 콘솔에서 확인한 '가맹점 식별코드' 입력
IMP.request_pay({// param
pg: "kakaopay.TC0ONETIME", //pg사명 or pg사명.CID (잘못 입력할 경우, 기본 PG사가 띄워짐)
pay_method: "card", //지불 방법
merchant_uid: "<%=merchant_uid%>", //가맹점 주문번호 (아임포트를 사용하는 가맹점에서 중복되지 않은 임의의 문자열을 입력)
name: "여행을 만들다", //결제창에 노출될 상품명
amount: <%=charge%>, //금액
buyer_id : "<%=user_id%>",
buyer_name : "<%=user_name%>"
},
function(rsp) { // callback
if (rsp.success) {
alert("완료 -> imp_uid : " + rsp.imp_uid + " / merchant_uid(orderKey) : " + rsp.merchant_uid);
window.location.href = "PayCon.do?charge=<%=charge%>&user_id=<%=user_id%>";
} else {
alert("실패 메세지");
}
});
}
</script>
</body>
PayCon
package controller;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import command.Command;
import model.CashDTO;
import model.UserDAO;
import model.UserDTO;
@WebServlet("/PayCon")
public class PayCon implements Command {
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) {
System.out.println("페이콘 진입");
String user_id = request.getParameter("user_id");
UserDAO udao = new UserDAO();
UserDTO user_info = udao.userInfo(user_id);
int cash = user_info.getUser_cash();
int charge = Integer.parseInt(request.getParameter("charge")) + cash;
System.out.println("충전된 금액 : " + charge);
int row = udao.chargeCash(new CashDTO(user_id, charge));
String moveURL;
if (row > 0) {
System.out.println("입금성공");
moveURL = "MyPage_normal.jsp";
}else {
System.out.println("입금실패");
moveURL = "Mypage_normal.jsp";
}
UserDTO info = udao.userInfo(user_id);
HttpSession session = request.getSession();
session.setAttribute("info", info);
return moveURL;
}
}
DAO, Mapper
public int chargeCash(CashDTO cdto) {
SqlSession session = sqlSessionFactory.openSession(true);
int row = session.update("chargeCash", cdto);
session.close();
return row;
}
<update id="chargeCash" parameterType="CashDTO" >
update user_info set user_cash = #{charge} where user_id = #{user_id}
</update>
'프로젝트 코드리뷰 > Travel Maker' 카테고리의 다른 글
Travel Maker - 반응형 웹 (미완성) (0) | 2023.08.25 |
---|---|
Travel Maker - 평점시스템 (0) | 2023.08.25 |
Travel Maker - SummerNote (0) | 2023.08.25 |
Travel Maker - Google Maps (0) | 2023.08.25 |
Travel Maker - 실시간 로그인 중복검사 (ajax) (0) | 2023.08.25 |