브랜드페이 및 지갑결제를 사용하기 위한 회원 토큰(UserToken)을 발급해요.
서버에서 부트페이 API를 호출하여 회원토큰을 발급받아요. 회원토큰은 브랜드페이(간편결제 자체 구축) 및 지갑결제 기능을 사용할 때 필요해요. 가맹점의 회원 정보를 부트페이에 연동하여, 해당 회원이 등록한 결제 수단(카드, 계좌 등)을 저장·재사용할 수 있게 해요.
일반 결제(PG 결제창 호출)만 사용하는 경우에는 회원토큰이 필요하지 않아요.
API 엔드포인트
POST
https://api.bootpay.co.kr/v2/request/user/tokenBasic Auth회원토큰은 1시간 동안 유효해요. 만료 후에는 다시 발급받아야 해요.
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
user_id |
String | 필수 | 회원 고유 ID (회원 로그인 ID 권장) |
email |
String | 선택 | 회원 이메일 주소 |
username |
String | 선택 | 회원 이름 |
phone |
String | 선택 | 회원 전화번호 |
gender |
Number | 선택 | 회원 성별 (1: 남자, 0: 여자) |
코드 예제
import { Bootpay } from '@bootpay/backend-js'
Bootpay.setConfiguration({
client_key: '[ Client Key ]',
secret_key: '[ Secret Key ]'
})
try {
const response = await Bootpay.requestUserToken({
user_id: 'user_12345',
email: 'user@example.com',
username: '홍길동',
phone: '01012345678',
gender: 1
})
// user_token을 프론트엔드에 전달
console.log(response)
} catch (e) {
console.log(e)
}javascriptfrom bootpay_backend import BootpayBackend
bootpay = BootpayBackend('APPLICATION_ID', 'PRIVATE_KEY')
response = bootpay.request_user_token(
user_id='user_12345',
email='user@example.com',
username='홍길동',
phone='01012345678',
gender=1
)
print(response)pythonuse Bootpay\ServerPhp\BootpayApi;
BootpayApi::setConfiguration('APPLICATION_ID', 'PRIVATE_KEY');
$response = BootpayApi::requestUserToken([
'user_id' => 'user_12345',
'email' => 'user@example.com',
'username' => '홍길동',
'phone' => '01012345678',
'gender' => 1,
]);
print_r($response);phpimport kr.co.bootpay.pg.Bootpay;
import kr.co.bootpay.pg.model.request.UserToken;
Bootpay bootpay = new Bootpay("APPLICATION_ID", "PRIVATE_KEY");
UserToken userToken = new UserToken();
userToken.userId = "user_12345";
userToken.email = "user@example.com";
userToken.username = "홍길동";
userToken.phone = "01012345678";
userToken.gender = 1;
var response = bootpay.getUserToken(userToken);
System.out.println(response);javabootpay = Bootpay::Api.new(application_id: 'APPLICATION_ID', private_key: 'PRIVATE_KEY')
response = bootpay.get_user_token(
user_id: 'user_12345',
email: 'user@example.com',
name: '홍길동',
phone: '01012345678',
gender: 1
)
puts response.datarubyimport "github.com/bootpay/backend-go/v2"
api := bootpay.NewAPI("APPLICATION_ID", "PRIVATE_KEY", nil, "")
response, err := api.RequestUserToken(bootpay.UserTokenRequest{
UserId: "user_12345",
Email: "user@example.com",
Username: "홍길동",
Phone: "01012345678",
Gender: 1,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(response)gousing Bootpay;
using Bootpay.models;
var bootpay = new BootpayApi("APPLICATION_ID", "PRIVATE_KEY");
var response = await bootpay.GetUserToken(new UserToken
{
userId = "user_12345",
email = "user@example.com",
username = "홍길동",
phone = "01012345678",
gender = 1
});
Console.WriteLine(response);csharp응답
성공 응답
{
"user_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expired_at": "2025-01-15T15:32:00+09:00"
}json응답 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
| user_token | String | 1시간 유지되는 Token 값 (SDK에 전달하여 사용) |
| expired_at | Date | Token 만료 시간 |
에러 코드
공통 에러
인증·권한 관련 에러는 에러 코드표를 참고해요.
| 코드 | 메시지 | 대처 방법 |
|---|---|---|
USER_NOT_FOUND |
회원정보가 없다. 다시 확인한다. | user_id를 확인해요 |
USER_JWT_INVALID |
JWT 토큰 정보가 잘못되었습니다. 다시 로그인을 시도한다. | 다시 로그인하여 유효한 JWT를 발급받아요 |
USER_SESSION_INVALID |
세션 정보가 없다 | 로그인 세션이 유효한지 확인해요 |
회원정보는 부트페이 서버에서 복호화가 불가능한 상태로 단방향 암호화하여 저장해요. 결제 통계를 위해 수집되는 정보일 뿐 제3자에게 제공하지 않아요.
