포인트 기능 넣기 2 카카오페이 api로 포인트 충전
포인트 적립 뿐만 아니라 충전할 수 있는 기능도 넣고 싶다.
해야 할 일
1. 아임포트 가입 후 키 발급받기
- jsp에서 사용하기
<script type="text/javascript" src="https://cdn.iamport.kr/js/iamport.payment-1.1.5.js"></script>
<script>
var IMP = window.IMP;
IMP.init('imp45182196'); // 아임포트 가맹점 식별코드
function requestPay1() {
// IMP.request_pay(param, callback) 결제창 호출
IMP.request_pay({ // param
pg: "kakao",
pay_method: "card",
merchant_uid: 'merchant_' + new Date().getTime(),
name: "포인트 충전",
amount: 1000,
buyer_email: "[email protected]",
buyer_name: "박씨",
}, function (rsp) { // callback
if (rsp.success) {
var msg = '결제가 완료되었습니다.';
updatePoint1.submit();
//결제가 완료되면 처리될 함수
} else {
var msg = '결제에 실패하였습니다.';
}
alert(msg);
});
}
</script>
<body>
<div class="btn-group" >
<form action="/member/pointCharge1" method="post" name="updatePoint1">
<input type="hidden" name="m_id" value="${sessionScope.loginId}">
<input type="hidden" name="m_point" value="1000">
<button class="btn btn-outline-danger" type="button" onclick="requestPay1()"> 1000p 충전</button>
</form>
</body>
여기서 계속 오류가 나서 애가 먹었다.
그 이유는 내 가맹점 식별 코드 ('imp45182196')를
(' imp45182196 ')이렇게 썼기 때문에... 띄어쓰기 같은건 절대로 하지말자!
- controller
@RequestMapping(value = "pointCharge1", method = RequestMethod.POST)
public String pointCharge1(@RequestParam ("m_id") String m_id, @RequestParam ("m_point") int m_point) {
System.out.println(m_id +"어디갔니?"+m_point);
ms.pointCharge(m_id,m_point);
return "redirect:/member/pointView?m_id="+m_id;
}
- service Impl
@Override
public void pointCharge(String m_id, int m_point) {
mr.pointCharge(m_id,m_point);
mr.memberPointCharge(m_id,m_point,"포인트 충전");
}
- repository
// 회원 포인트 저장
public void pointCharge(String m_id, int m_point) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("m_id", m_id);
map.put("m_point", m_point);
sql.update ("Member.pointCharge",map);
}
//이력 저장
public void memberPointCharge(String m_id, int p_point, String p_type) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("m_id", m_id);
map.put("p_point", p_point);
map.put("p_type", p_type);
sql.insert("point.pointSave", map);
}
6.mapper : 포인트 적립과 똑같음
해보고 아쉬운 점 - 함수 이름이 구분이 잘 안가게 지어버림, ajax를 더 익혀 1000p 5000p 10000p로 amount가 바뀌어도 한 함수로 할 수 있도록 코드를 줄이고 싶음.(지금은 값을 아예 넣어버림ㅠ) 구매자 이메일, 이름도 받아오도록 수정해야함
Author And Source
이 문제에 관하여(포인트 기능 넣기 2 카카오페이 api로 포인트 충전), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hellocdpa/포인트-기능-넣기-2-카카오페이-api로-포인트-충전저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)