이니시스 웹표준 결제에서 제공하는 지불수단은 아래와 같습니다.
-
신용카드 - 안심클릭, ISP, 비인증 신용카드, 해외 Visa 카드, 삼성월렛, PayPin
-
간편결제 – 카카오페이, Lpay, SSGpay, 삼성페이, Kpay, Payco
-
실시간 계좌이체
-
무통장입금(가상계좌)
-
휴대폰결제
-
포인트
-
상품권(문화상품권, 해피머니상품권, 스마트문화상품권)
-
전화결제(ARS)
-
신용카드, 휴대폰 빌링 (빌링키 발급만 가능)
결제 요청 페이지 작성(INIStdPayRequest)
signkey값 설정
웹 표준 결제 이용시 패스워드 기능을 하는 코드로 MID 번호별로 부여됩니다.
String mid = "INIpayTest";
// 가맹점 ID(가맹점 수정후 고정)
// 가맹점에 제공된 웹 표준 사인키(가맹점 수정후 고정)
String signKey = "SU5JTElURV9UUklQTEVERVNfS0VZU1RS";
signkey 발급 방법
관리자 페이지의 상점정보 > 계약정보 > 부가정보의 웹결제 signkey 생성 조회 버튼 클릭 후 팝업창에서 생성 버튼 클릭 후 해당 값 소스에 반영하시기 바랍니다.
표준결제 스크립트 Import
실서버 (https://stdpay.inicis.com/stdjs/INIStdPay.js)
<script language="javascript" type="text/javascript" src="https://stdpay.inicis.com/stdjs/INIStdPay.js" charset="UTF-8"></script>
테스트서버 (https://stgstdpay.inicis.com/stdjs/INIStdPay.js) - INIpayTest 결제 테스트 가능 지불수단별 거래 승인됨
<script language="javascript" type="text/javascript" src="https://stgstdpay.inicis.com/stdjs/INIStdPay.js" charset="UTF-8"></script>
**참고사항**
* 신용카드: 별도의 취소를 하지 않는 경우 당일 23 시에 일괄취소 처리됨
* 계좌이체: 별도의 취소를 하지 않는 경우 당일 23 시에 일괄취소 처리됨
* 휴대폰: 별도의 취소를 하지 않은 경우 당일 23 시에 일괄 취소처리됨
* 가상계좌: 입금테스트 진행하도록 안내 리얼입금의 경우 환불이 어려움
상단의 스크립트를 <head> Tag 안에 설정
<!-- 예시 -->
<head>
....
<script language="javascript" type="text/javascript" src="HTTPS://stdpay.inicis.com/stdjs/INIStdPay.js" charset="UTF-8"></script>
....
</head>
결제
결제 요청 Form 양식 (신용카드 예시)
*** 무조건 returnUrl을 서비스 도메인과 매칭시켜야됩니다. (로컬서버 필요)
<!-- 무조건 returnUrl을 사용 도메인과 매칭시켜야됩니다. -->
<form id="payForm" method="POST" accept-charset="UTF-8">
<input name="version" type="hidden" required="required" value="1.0">
<input name="mid" type="hidden" required="required" value="INITEST">
<input name="oid" type="hidden" required="required" value="INITEST_1581574116856">
<input name="goodsname" type="hidden" required="required" value="2019 맥북프로">
<input name="price" type="hidden" required="required" value="1000">
<input name="tax" type="hidden" value="0">
<input name="taxfree" type="hidden" value="0">
<input name="currency" type="hidden" required="required" value="WON">
<input name="buyername" type="hidden" required="required" value="Ruden">
<input name="buyertel" type="hidden" required="required" value="010-1234-1234">
<input name="buyeremail" type="hidden" value="ruden91@naver.com">
<input name="timestamp" type="hidden" required="required" value="1581574116856">
<input name="signature" type="hidden" required="required" value="e3a9de48e5c9be23caa469e9edc2a7ae1447d486ac37ecb69e715f558e5f239f">
<input name="returnUrl" type="hidden" required="required" value="http://example.com/return">
<input name="mKey" type="hidden" required="required" value="a7e01e0fda1f05dffd353e65051b8f30bb6c88d76f812eb0b6af94b10c12cb5f8">
<input name="gopaymethod" type="hidden" value="Card">
<input name="languageView" type="hidden" value="ko">
<input name="charset" type="hidden" value="UTF-8">
<input name="popupUrl" type="hidden" required="required" value="http://example.com/return">
<input name="merchantData" type="hidden" required="required" value="">
<input name="quotabase" type="hidden" value="2:3:4:5:6:7:8:9:10:11:12">
<input name="nointerest" type="hidden">
<input name="acceptmethod" type="hidden" value="CARDPOINT:HPP(2):va_receipt:below1000:SKIN():KWPY_TYPE(0):KWPY_VAT(0)">
</form>
<script>
var pay = function() {
INIStdPay.pay('payForm') // form id
}
document.querySelector('.pay').addEventListener('click', pay)
</script>
리턴 페이지(인증수신/승인 API) 작성(INIStdPayReturn)
결제창을 통해 인증이 완료되면 인증결과를 가맹점으로 전달 합니다.
인증 결과에서 리턴받은 authUrl 필드를 활용해서 HTTPS API Request(httpClient 통신) 승인요청(POST)을 합니다.
netCancelUrl 필드는 승인요청 후 인증결과 수신 실패 / DB저장 실패 시 해당 URL로 HTTPS API Request(httpClient 통신) 망취소요청(POST)을 합니다.
결제 승인 API 요청 - authUrl 활용
- 인증결과가 성공일때 authUrl 로 HTTPS API Request(httpClient 통신)를 통해 페이지 요청
* HTTPS API Request(httpClient 통신)
= httpClient 등의 http Background 통신이 가능한 유틸을 통해서 웹페이지를 요청후 그 결과를 수신
- 가맹점 환경에 따른 charset, format 을 지정하여 요청
- 승인요청은 인증결과 리턴후 5 분이내 이루어져야만 합니다.
결제 승인 API 결과(결제완료)
-
승인 요청후 결제결과(responseBody)를 받아 요청타입(format)에 따라서 파싱 후에 내부처리(DB 저장 등) 하시기 바랍니다.
-
수신시 전송 필드명을 명확히하여 처리하시기 바랍니다. (필드명 대/소문자 구분)
-
승인에 실패하였을 경우 실패시 전달되는 데이터만 전송됩니다.
-
결제 수단에 따라 공통필드외 추가적으로 다른 데이터가 전송됩니다.
이니시스 결제 완료 시 Dummy JSON
{
CARD_Quota: '00',
CARD_ClEvent: '',
buyerTel: '010-1234-5678',
parentEmail: '',
applDate: '20200109',
buyerEmail: 'test@inicis.com',
OrgPrice: '',
p_Sub: '',
resultCode: '0000',
mid: 'INIpayTest',
CARD_UsePoint: '',
CARD_Num: '*********',
authSignature:
'1098068440353e7f82e9eb2ee331fd52b81e15629827b6f0ad7d7f11bb9f5617',
tid: 'StdpayCARDINIpayTest91120200128480541566',
EventCode: '',
goodName: 'SUPLIST_GO >> Double or Twin COMFORT',
TotPrice: '100',
payMethod: 'Card',
CARD_MemberNum: '',
MOID: 'INIpayTest_1578536899402',
CARD_Point: '',
currency: 'WON',
CARD_PurchaseCode: '',
CARD_PrtcCode: '0',
applTime: '112849',
goodsName: '2018 맥북프로',
CARD_CheckFlag: '1',
FlgNotiSendChk: '',
CARD_Code: '97',
CARD_BankCode: '97',
CARD_TerminalNum: '',
buyerName: '박경두',
p_SubCnt: '',
applNum: '',
resultMsg: '정상처리되었습니다.',
CARD_Interest: '0',
CARD_SrcCode: 'O',
CARD_ApplPrice: '100',
CARD_GWCode: 'K',
custEmail: '',
CARD_Expire: '',
CARD_PurchaseName: '카카오머니',
CARD_PRTC_CODE: '0',
payDevice: 'PC'
}
결제 취소
웹표준 결제는 망 취소 외 거래 취소 기능을 지원하지 않습니다.
따라서, 결제 취소는 별도의 TX 모듈을 설치하시어 TX 모듈의 취소기능을 활용하셔야 합니다.
TX 모듈이 설치되어 있지 않은 경우 , 이니시스 홈페이지(www.inicis.com) 의 “전자결제 > 기술지원 > 기술안내/다운로드” 에서 최신버전을 다운로드 받으시기 바랍니다.
그 외 문의사항은 당사 기술지원팀(ts@kggroup.co.kr / 02-3430-5960) 으로 문의 바랍니다.
-
가맹점에서 당 웹표준서버로 승인 요청 중 예외(TIMEOUT)가 발생 하거나, 승인 정상 수신 후 가맹점 처리 중 에러가 발생 시에도 망 취소 하도록 샘플로 제공하고 있습니다. (샘플소스 참고)
-
승인 요청 전문과 동일한 스펙으로 진행됩니다.
-
인증결과 수신 시 전달받은 “netCancelUrl” 으로 망 취소 요청합니다.
-
망 취소를 일반 결제 취소 용도로 사용시 정상 취소가 안될수 있습니다.
KG이니시스 웹표준 망 취소 요청 및 응답 데이터 참고
'개발 > 기타' 카테고리의 다른 글
Chrome Extension을 활용해서 User-Agent를 자유롭게 변경 및 추가하는 방법 (0) | 2020.02.24 |
---|---|
Chrome Extension을 활용해서 HTTP Header를 자유롭게 변경 및 추가하는 방법 (0) | 2020.02.21 |
KG이니시스 웹표준 망 취소 요청 및 응답 데이터 (0) | 2020.02.13 |
KG이니시스 웹표준 Signature 생성방법 (Javascript) (0) | 2020.02.13 |
KG이니시스 웹표준 승인요청 데이터 필드 (0) | 2020.02.13 |
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.