window.addEventListener("message", (e) => {
console.log("alcherakyc response", e.data); // base64 encoded된 JSON 메시지이므로 decoded해야 함(needs to be decoded becaused it`s encoded by base64)
console.log("origin :", e.origin);
try {
const decodedData = decodeURIComponent(atob(e.data));
console.log("decoded", decodedData);
const json = JSON.parse(decodedData);
console.log("json", json);
// 데이터처리 부분
if (json.result === "success") {
// TODO: KYC 인증을 성공한 경우 데이터 처리
// console.log(json.result + "결과 서버 저장");
} else if (json.result === "failed") {
// TODO: KYC 인증을 실패한 경우 데이터 처리
// console.log(json.result + "결과 서버 저장");
}
// UI 처리
else if (json.result === "complete") {
// TODO: KYC 인증을 성공(자동승인 or 심사필요 케이스 모두 포함) 후 UI 처리
// iframe이 포함된 UI를 종료
// 고객사 서비스 UI를 다시 띄우고 상황에 맞는 UI 표시
// 예시 : 자동승인 -> KYC인증이 완료되었습니다. 계좌개설이 완료되었습니다.
// 예시 : 심사필요 -> KYC인증이 완료되었습니다. 심사가 완료된 이후 이메일로 안내 드리겠습니다.
} else if (json.result === "close") {
// TODO: KYC 인증을 실패(자동거부 or 중도이탈) 후 UI 처리
// iframe이 포함된 UI를 종료
// 고객사 서비스 UI를 다시 띄우고 상황에 맞는 UI 표시
// 예시 : 자동거부 -> KYC인증이 실패하였습니다. 다시 인증을 시도후 서비스 이용이 가능합니다.
} else {
// invalid result
}
} catch (error) {
console.log("wrong data", error);
}
});
※ Android Java, Kotlin, iOS Swift, React Native의 경우 별도 샘플코드 참고