signature 개요
결제요청시 등 HTTPS post 요청시 가맹점의 요청이 정상적인 요청인지 여부 / 사용자의 위변조 방지를 위해 일부 데이터를 SHA256 으로 Hash 한 값
signature 는 form.submit 시 적용됩니다.
signature 첨부 대상
-
INIpay Standard 의 모든 요청
-
결제(인증), 승인 APIsignature 생성 대상 필드(Target)
-
모든 요청의 signature 의 생성방법 동일하며, 요청별로 생성 대상 필드가 다름 * 요청별로 명시된 “signature 생성 대상(Target) 필드”를 참조
-
인증요청(결제요청) : oid, price, timestamp → “[TABLE 1-2] signature 생성 대상(Target) 필드“참조
-
승인요청 : authToken, timestamp → “[TABLE 2-3] 승인요청 signature 생성 대상(Target) 필드” 참조
signature 생성 방법
위변조 방지를 위한 보안조치로서 필수 체크 데이터를 NVP 방식으로 연결한 데이터를 SHA256 으로 Hash한 값
* NVP : name and value parameters
ex) name=value&name=value&name=value&name=value
필드 순서유지(알파벳순), 마지막 &는 생략, 공백생략, 모든대상 필드는 Form 에 설정되는 데이터와 동일한 값을 이용
signature 생성 샘플(결제요청)
Target 데이터(signParam)
oid=INIpayTest_1361252896871&price=1004&×tamp=1361252896871
Hash 데이터(위 Target 데이터를 SHA256 Hash 한 값)
ec1e9c63ddad0b81f316ada2e3861e81db5f4f6652d9ff0f255b4cb5499ce893
잘못된 Target 데이터 생성 예
띄어쓰기 및 & 중복의 경우
원본 |
oid=1231231&price=10000& ×tamp=1335247243103 |
수정 |
oid=1231231&price=10000×tamp=1335247243103 |
마지막 &가 붙는 경우
원본 |
oid=1231231&price=10000×tamp=1335247243103& |
수정 |
oid=1231231&price=10000×tamp=1335247243103 |
Javascript example
/**
* import { sha256 } from 'js-sha256';
* import qs from 'qs';
* @param {obj}
* oid string
* price string
* timestamp number
*/
export const makeSignature = (obj) => {
// oid=1231231&price=10000& ×tamp=1335247243103
return sha256(qs.stringify(obj));
}
'개발 > 기타' 카테고리의 다른 글
KG이니시스 웹표준 결제 모듈 연동 (5) | 2020.02.13 |
---|---|
KG이니시스 웹표준 망 취소 요청 및 응답 데이터 (0) | 2020.02.13 |
KG이니시스 웹표준 승인요청 데이터 필드 (0) | 2020.02.13 |
KG이니시스 웹표준 승인 결과 데이터 필드 (0) | 2020.02.13 |
KG이니시스 웹 결제 인증결과 데이터 (0) | 2020.02.13 |
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.