User.getConsentedData
함수형 API
getConsentedUserData로도 같은 기능을 쓸 수 있어요.
기능 설명
사용자 동의 기반 데이터를 요청해요. 동의가 필요하면 약관 웹뷰를 띄우고, 동의가 완료되면 서버에서 조회한 데이터를 반환해요.
토스앱 5.264.0 이상에서 사용할 수 있어요. 호출 전에 User.getConsentedData.isSupported()로 지원 여부를 확인할 수 있어요. 함수형 API getConsentedUserData는 미지원 버전에서 undefined를 반환하고, User.getConsentedData는 UNSUPPORTED_APP_VERSION 에러를 던져요.
타입
User.getConsentedData(options: GetConsentedUserDataOptions): Promise<ConsentedUserData>;Params
interface GetConsentedUserDataOptions {
/** 서버가 사용자 데이터 제공 동의문과 데이터 묶음을 찾을 때 쓰는 key예요. 예: `cud_delivery` */
consentedUserDataKey: string;
/** `USER_DECLINED` 상태에서도 다시 약관 웹뷰를 띄울지 여부예요. 기본값은 `false`예요. */
shouldRequestAgreementWhenUserDeclined?: boolean;
}Response
type ConsentedUserDataKey =
| "USER_NAME"
| "USER_GENDER"
| "USER_NATIONALITY"
| "USER_BIRTHDAY"
| "USER_PHONE"
| "USER_ADDRESS"
| "USER_EMAIL"
| "USER_CONSUMPTION_HISTORY";
type ConsentedUserData = Partial<Record<ConsentedUserDataKey, string>>;요청한 항목에 해당하는 키만 포함될 수 있어요.
에러
에러 코드는 catch한 에러의 error.code 값이에요.
UNSUPPORTED_APP_VERSION
실행 중인 토스앱 버전이 이 기능을 지원하지 않으면 호출 즉시 발생해요. User.getConsentedData.isSupported()로 사전 확인하고, 발생 시 error.message(업데이트 안내 문구)를 사용자에게 보여주세요.
USER_DECLINED
사용자가 명시적으로 거부했고 재요청 옵션이 없거나, 약관 웹뷰에서 동의를 거부한 경우예요.
UNAVAILABLE
서버가 사용자 동의 여부를 판단할 수 없는 경우예요.
TERMS_NOT_SET
미니앱에 사용자 데이터 제공 동의문이 설정되지 않은 경우예요.
INVALID_REQUEST
consentedUserDataKey가 비어 있거나, termsUrl이 없거나, HTTPS 회사 도메인이 아닌 경우예요.
CANCELED
약관 웹뷰가 결과를 보내기 전에 닫힌 경우예요.
CONSENTED_USER_DATA_AGREEMENT_FAILED
약관 웹뷰 처리 중 오류가 발생한 경우예요.
CONSENTED_USER_DATA_INVALID_DATA
PROVIDED인데 data가 없거나, 동의 성공 후 재조회 결과가 PROVIDED가 아닌 경우예요.
예시 코드
도움이 되었나요?