고객

로그인 토큰

토큰을 결제 위젯에 넘기면 고객이 자동 로그인된 상태로 결제해요.

v1 API 상세: 회원

고객 전용 로그인 토큰을 발급해요. 발급된 토큰을 결제 위젯에 전달하면 고객이 자동 로그인된 상태로 쇼핑몰을 이용할 수 있어요.

API 엔드포인트

POSThttps://api.bootapi.com/v1/users/login/tokenBasic Auth

필요 권한: user:user_login_token

요청 파라미터

파라미터 타입 필수 설명
user_id String 필수 고객 식별값. 회원은 회원 ID 또는 로그인 아이디(이메일 가입 몰은 로그인 이메일)예요. external_uid 로는 찾지 않아요. 비회원(guest)은 가맹점이 정한 비회원 식별값이며, 해당 ID가 없으면 새 비회원을 만든 뒤 발급해요
corporate_type String 선택 고객 유형 (individual / corporate), 기본: individual
membership_type String 선택 회원 유형 (guest / member), 기본: member

코드 예제

const { BootpayCommerce } = require('@bootpay/backend-js')

const commerce = new BootpayCommerce({
    client_key: 'your-commerce-client-key',
    secret_key: 'your-commerce-secret-key',
    mode: 'production'
})

const response = await commerce.user.loginToken({
    user_id: '67e4b4425ec892162491d0ec',
    corporate_type: 'individual',
    membership_type: 'member'
})
console.log('token:', response.token)javascript

응답

성공 응답

{
  "token": "eyJhbGciOiJSUzI1NiJ9.xxxxx.xxxxx"
}json

에러 응답

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
  "error_code": "INVOICE_TARGET_NOT_FOUND",
  "message": "링크페이에 등록된 사용자 정보가 없습니다."
}json

위젯에서 토큰 사용

발급받은 토큰을 결제 위젯의 onReady 콜백에서 전달해요:

window.BootpayCommerce.render('#bootpay-shop', {
    client_key: '[Commerce Client KEY]',
    hooks: {
        onReady: () => {
            // 서버에서 발급받은 로그인 토큰 전달
            const token = "[server-issued-token]"
            window.BootpayCommerce.sendEvent('updateUserSession', token)
        }
    }
})javascript

에러 코드

공통 에러

인증·권한 관련 에러는 에러 코드표를 참고해요.

코드 메시지 대처 방법
REQUIRED_PARAMETER_IS_MISSING user_id가 없어요. (HTTP 400) user_id를 넣어요
INVOICE_TARGET_NOT_FOUND 링크페이에 등록된 사용자 정보가 없어요. 활성 회원의 user_id·로그인 아이디·로그인 이메일인지 확인해요
USER_CORPORATE_TYPE_INVALID 회원 타입이 유효하지 않아요. corporate_type 을 individual·corporate 중 하나로 보내요
MALL_CORPORATE_TYPE_NOT_ALLOWED 사업자 회원이 허용된 쇼핑몰이 아니에요. corporate_type 을 individual 로 보내거나 쇼핑몰 설정을 확인해요
USER_GROUP_NOT_FOUND 회원 그룹 정보를 찾지 못했어요. 해당 유형의 그룹에 속한 회원인지 확인해요

로그인 세션은 발급 후 1일 동안 유지돼요. 페이지 로딩 시마다 새로 발급하는 것을 권장해요.