A211 : 해쉬값 검증에 실패 하였습니다.

230 : 예금주 실명번호 불일치

908 : 결제 모듈 재설치 필요

960 : 이용기관(쇼핑몰)송신 전문오류

1512 : TX인증결제 회원사 서비스 개시안됨

1525 : VAN터미널 미설정 오류

1605 : 가맹점 TrKey 내역 없음

<!-- value 는 공백으로 처리 -->
<input type="hidden" name="TrKey" value=""/>

1617 : 거래금액 오류(공급가액,부가세,봉사료,면세금액 미입력)

<!-- EX) 상품가격이 1,004 원인 경우 -->
<!-- Amt = SupplyAmt + GoodsVat + ServiceAmt + TaxFreeAmt -->

<!-- 필드명:Amt / 사이즈:12 / 설명:결제 총액 -->
<input type="hidden" name="Amt" value="1004">

<!-- 필드명:SupplyAmt / 사이즈:12 / 설명:공급가 액 -->
<input type="hidden" name="SupplyAmt" value="900">

<!-- 필드명:GoodsVat / 사이즈:12 / 설명:부가가 치세 -->
<input type="hidden" name="GoodsVat" value="104">

<!-- 필드명:ServiceAmt / 사이즈:12 / 설명:봉사료 -->
<input type="hidden" name="ServiceAmt" value="0">

<!-- 필드명:TaxFreeAmt / 사이즈:12 / 설명:면세 금액 -->
<input type="hidden" name="TaxFreeAmt" value="0">

  • 면세설정을 이용하려면 연동전 서비스 신청이 필요 합니다.
  • 취소시 각 필드 값에 맞도록 요청 하세요.

1652 : 승인 TID 길이 오류

TID = 가맹점ID(MID) + 지불수단(2byte) + 매체구분(2byte) + 시간정보(yyMMddHHmmss) + 랜덤(4byte)

ex)
MID     = nicepay00m
지불수단 = 01            // CARD–01 (신용카드), BANK–02(계좌이체), VBANK–03(가상계좌), CELLPHONE–05(휴대폰결제)
매체구분 = 01            // 고정
시간정보 = 170511000000  //yyMMddHHmmss
랜덤     = 0123

TID = nicepay00m01011705110000000123

2006 : 거래거절 시범운영대상사업자아님

2037 : 거래거절 신분확인 오류

<!-- 필드명:ReceiptTypeNo / 사이즈:20 / 설명:현금영수증 발급번호-->
<input type="hidden" name="ReceiptTypeNo" value=""> // 사업자번호, 휴대폰 번호 입력

<!-- 필드명:ReceiptSubNum / 사이즈:10 / 설명:서브몰 사업자 번호 -->
<input type="hidden" name="ReceiptSubNum" value="">

2121 : 해당 기기는 서비스 불가 합니다

2517 : 위장/휴폐업 사업자거래

4015 : 기 취소 오류

7008 : 현금영수증 서브몰 발행 미등록 업체

7011 : 현금영수증 미발행 요청입니다

<!-- 필드명:ReceiptType / 사이즈:1 / 설명:1: 소득 공제,  2: 지출증빙-->
<input type="hidden" name="ReceiptType" value=""> // 사업자번호, 휴대폰 번호 입력

7012 : 현금영수증 Identity 번호 오류

<!-- 필드명:ReceiptTypeNo / 사이즈:20 / 설명:현금영수증 발급번호-->
<input type="hidden" name="ReceiptTypeNo" value=""> // 사업자번호, 휴대폰 번호 입력

7014 : 현금영수증 서브몰 사업자번호로 발행시 필수값 누락

<!-- 필드명:ReceiptSubNum / 사이즈:10 / 설명:현금영수증 서브몰 사업자번호-->
<input type="hidden" name="ReceiptSubNum" value=""> // 사업자번호, 휴대폰 번호 입력

<!-- 필드명:ReceiptSubCoNm / 사이즈:40 / 설명:현금영수증 서브몰 상호-->
<input type="hidden" name="ReceiptSubCoNm" value=""> // 사업자번호, 휴대폰 번호 입력

<!-- 필드명:ReceiptSubBossNm / 사이즈:20 / 설명:현금영수증 서브몰 대표자명-->
<input type="hidden" name="ReceiptSubBossNm" value=""> // 사업자번호, 휴대폰 번호 입력

<!-- 필드명:ReceiptSubTel / 사이즈:16 / 설명:현금영수증 서브몰 전화번호-->
<input type="hidden" name="ReceiptSubTel" value=""> // 사업자번호, 휴대폰 번호 입력

7571 : 거래거절 카드를 읽히시오

7575 : 카드사미등록 승인거절

8033 : 서비스 불가카드

8096 : PG하위몰 사업자번호 오류

8374 : 거래 거절 회선 장애 다시 하십시오

8379 : 거래 거절 할부불가카드

8401 : 할인적용 불가카드

8546 : 이미 사용된 결제 코드 입니다

8900 : CAVV 데이터 오류

8901 : 미등록 PG 업체 /거래정지 업체

8906 : PG하위몰 사업자번호 오류

A002 : 비정상적인 접근으로 처리가 불가능합니다

<!-- 필드명:ReturnURL / 사이즈:500 / 설명:인증 완료 결과 처리 URL-->
<input type="hidden" name="ReturnURL" value="https://가맹점 URL">

F112 : 유효하지않은 카드번호를 입력하셨습니다.

<!-- 필드명:CardNo / 사이즈:20 / 설명:카드 번호-->
<input type="hidden" name="CardNo" value="">

F113 : 오류

W003 : 상점MID가 유효하지 않습니다.

<!-- 필드명:MID / 사이즈:10 / 설명:가맹점 MID-->
<input type="hidden" name="MID" value="nicepay00m"> //test MID : nicepay00m

W004 : 결제수단이 유효하지 않습니다.

<!-------결제 수단------->
<!-- CARD: 신용카드 -->
<!-- BANK: 계좌이체 -->
<!-- VBANK: 가상계좌  -->
<!-- CELLPHONE: 휴대폰결제  -->
<!-- SSG_BANK: SSG 은행계좌  -->
<!-- GIFT_SSG: SSG머니 (모바일 Only)  -->

<!-- 필드명:PayMethod / 사이즈:10 / 설명:결제 수단-->
<input type="hidden" name="PayMethod" value="CARD"> //ex) CARD: 신용카드

W007 : 위변조 테이터를 체크 하세요

DataEncrypt sha256Enc = new DataEncrypt();
String ediDate = getyyyyMMddHHmmss();	
String encryptData = sha256Enc.encrypt(ediDate + merchantID + price + merchantKey);

<input type="hidden" name="EncryptData" value="<%=encryptData%>"/>	
$ediDate = date("YmdHis");
$encryptData = bin2hex(hash('sha256', $ediDate.$MID.$price.$merchantKey, true));

<input type="hidden" name="EncryptData" value="<?php echo($encryptData)?>"/>	
encryptData = stringToSHA256(ediDate + merchantID + price + merchantKey);
public String stringToSHA256(String plain){
    SHA256Managed SHA256 = new SHA256Managed();
    String getHashString = BitConverter.ToString(SHA256.ComputeHash(Encoding.UTF8.GetBytes(plain))).ToLower();
    return getHashString.Replace("-", "");
}

<input type="hidden" name="EncryptData" value="<%=encryptData%>"/>	
const format = require('date-format')
const CryptoJS = require("crypto-js")

var ediDate = format.asString('yyyyMMddhhmmss', new Date())
var encryptData = getEncryptData(ediDate + merchantID + amt + merchantKey)

function getEncryptData(str) {
    var encrypted = CryptoJS.SHA256(str);
    return encrypted;
}
from datetime import datetime
import hashlib

def getEdiDate():
    YYYYmmddHHMMSS = datetime.today().strftime("%Y%m%d%H%M%S")
    return str(YYYYmmddHHMMSS)

def getEncrypt(str):
    encoded_str = str.encode()
    EncryptData = hashlib.sha256(encoded_str).hexdigest()
    return EncryptData
    
EdiDate = getEdiDate()
plainText = EdiDate + MID + Amt + MerchantKey
EncryptData = getEncrypt(plainText)
  • hash 함수 처리는 외변조와 관련된 사항으로 신중한 처리가 필요 합니다.
  • hash 처리에 대한 책임은 가맹점에 있습니다.