교육운영>결제내역>결제관리(기본정보) :

"조건 : 입금대기 상태
요청 : 취소 기능 추가
상세
 - 미수처리/결제완료처리 뒤에 '취소' 버튼 추가
 - 클릭 시 상태 취소로 변경
 - 테스트 사이트 결제번호 550 과 같은 상태로 변경
   (사용자에서 입금전 취소 했을 때와 동일 상태)

* 현재 입금대기 상태일 경우 사용자에서는 신청 취소가 되나 관리자에서는 취소가 불가능"
This commit is contained in:
lch 2021-07-12 09:04:06 +00:00
parent 19d1c95d09
commit d630de88f0
3 changed files with 35 additions and 19 deletions

View File

@ -73,6 +73,7 @@
{ {
<a href="#" class="btn btn-primary" onclick="unpay(@p.payno)">미수처리</a> <a href="#" class="btn btn-primary" onclick="unpay(@p.payno)">미수처리</a>
<a href="#" class="btn btn-primary" onclick="abspay(@p.payno)">결제완료처리</a> <a href="#" class="btn btn-primary" onclick="abspay(@p.payno)">결제완료처리</a>
<a href="#" class="btn btn-primary" onclick="cancelpay(@p.payno, @p.userno)">취소</a>
} }
else if (p.ptype == 3 && p.pstatus == 1 && p.ispg == 1 && p.isunpay == 1) else if (p.ptype == 3 && p.pstatus == 1 && p.ispg == 1 && p.isunpay == 1)
{ {
@ -505,7 +506,17 @@ else if (p.isunpay == 3)
opener.searchthis(); opener.searchthis();
} }
} }
function cancelpay(payno, userno) {
if (confirm("상품을 결제취소처리하시겠습니까?")) {
capp("/acommon/paycancelpay", { payno: payno, userno: userno }, "cbcancelpay");
}
}
function cbcancelpay() {
if (capResult.code == 1000) {
msg("결제최소처리되었습니다.", null, null, null, null, "location.href='/croom/payview?payno=@p.payno'");
opener.searchthis();
}
}
function rfdinfosave() { function rfdinfosave() {
if (confirm("환급정보를 저장하시겠습니까?")) { if (confirm("환급정보를 저장하시겠습니까?")) {
capp("/acommon/PayRefundInfoSave", { payno: @p.payno, rbank: $("#rbank").val(), rbankaccnum: $("#rbankaccnum").val(), tbankuser: $("#tbankuser").val() }, "rfdsave"); capp("/acommon/PayRefundInfoSave", { payno: @p.payno, rbank: $("#rbank").val(), rbankaccnum: $("#rbankaccnum").val(), tbankuser: $("#tbankuser").val() }, "rfdsave");

View File

@ -1288,6 +1288,11 @@ namespace NP.Base.Controllers
return JsonOK(Dao.Save("pay.abspay", new Hashtable() { { "payno", payno }, { "ptype", ptype}, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } })); return JsonOK(Dao.Save("pay.abspay", new Hashtable() { { "payno", payno }, { "ptype", ptype}, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
} }
[HttpPost] [HttpPost]
public JsonResult PayCancelPay(Int64 payno, int userno)
{
return JsonOK(Dao.Save("pay.paycancel", new Hashtable() { { "payno", payno }, { "userno", userno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
}
[HttpPost]
public JsonResult PayUnPayMoney(Int64 payno, DateTime payoktime) public JsonResult PayUnPayMoney(Int64 payno, DateTime payoktime)
{ {
return JsonOK(Dao.Save("pay.unpaymoney", new Hashtable() { { "payno", payno },{ "payoktime", payoktime}, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } })); return JsonOK(Dao.Save("pay.unpaymoney", new Hashtable() { { "payno", payno },{ "payoktime", payoktime}, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));

View File

@ -916,7 +916,7 @@
</select> </select>
<select id="cr.pay1" parameterClass="long" resultClass="pay"> <select id="cr.pay1" parameterClass="long" resultClass="pay">
select p.payno,p.cdt,p.payamt,p.ptype,p.refundamt,p.ispg,p.isgroup,p.isexam,p.pstatus,p.rstatus,p.payoktime,p.pgkey,p.isdvr,p.deliamt,p.isunpay,p.paylimit select p.payno,p.cdt,p.payamt,p.ptype,p.refundamt,p.ispg,p.isgroup,p.isexam,p.pstatus,p.rstatus,p.payoktime,p.pgkey,p.isdvr,p.deliamt,p.isunpay,p.paylimit
,u.username,u.post,u.address1,u.address2 ,u.userno,u.username,u.post,u.address1,u.address2
,CAST(AES_DECRYPT(UNHEX(u.userpno), <include refid="sql.digest"></include>) AS char) userpno ,CAST(AES_DECRYPT(UNHEX(u.userpno), <include refid="sql.digest"></include>) AS char) userpno
,CAST(AES_DECRYPT(UNHEX(u.telno), <include refid="sql.digest"></include>) AS char) telno ,CAST(AES_DECRYPT(UNHEX(u.telno), <include refid="sql.digest"></include>) AS char) telno
,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) mobile ,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) mobile