<!-- 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">
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
파라미터명 | 파라미터설명 |
---|---|
RefundAcctNo | 16 byte 가상계좌, 휴대폰 익월 환불 Only 환불계좌번호 (숫자만) |
RefundBankCd | 3 byte 가상계좌, 휴대폰 익월 환불 Only 환불계좌코드 (*은행코드 참고) |
RefundAcctNm | 10 byte 가상계좌, 휴대폰 익월 환불 Only 환불계좌주명 (euc-kr) |
<!-- 필드명:ReturnURL / 사이즈:500 / 설명:인증 완료 결과 처리 URL-->
<input type="hidden" name="ReturnURL" value="https://가맹점 URL">
<!-- 필드명:MID / 사이즈:10 / 설명:가맹점 MID-->
<input type="hidden" name="MID" value="nicepay00m"> //test MID : nicepay00m
<!-------결제 수단------->
<!-- CARD: 신용카드 -->
<!-- BANK: 계좌이체 -->
<!-- VBANK: 가상계좌 -->
<!-- CELLPHONE: 휴대폰결제 -->
<!-- 필드명:PayMethod / 사이즈:10 / 설명:결제 수단-->
<input type="hidden" name="PayMethod" value="CARD"> //ex) CARD: 신용카드
DataEncrypt sha256Enc = new DataEncrypt();
String ediDate = getyyyyMMddHHmmss();
String encryptData = sha256Enc.encrypt(ediDate + merchantID + price + merchantKey);
<input type="hidden" name="SignData" value="<%=encryptData%>"/>
$ediDate = date("YmdHis");
$encryptData = bin2hex(hash('sha256', $ediDate.$MID.$price.$merchantKey, true));
<input type="hidden" name="SignData" 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="SignData" value="<%=encryptData%>"/>
const format = require('date-format')
const CryptoJS = require("crypto-js")
var ediDate = format.asString('yyyyMMddhhmmss', new Date())
var signData = 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
SignData = getEncrypt(plainText)