원스토어(OneStore) 외부결제를 연동하는 방법이에요. 원스토어 앱 내 결제에서 부트페이를 사용하려면 OAuth 키 설정과 추가 파라미터가 필요해요.
사전 설정
OAuth 키 등록
부트페이 관리자 플러그인 설정에서 원스토어 OAuth 키를 등록해야 해요.
- 부트페이 관리자 → 개발자 설정 > 플러그인 > 원스토어 항목 이동
- CLIENT_ID와 CLIENT_SECRET을 입력
- 저장
원스토어 개발자 센터에서 OAuth 키를 발급받을 수 있어요.
결제는 어디로 나가나
원스토어는 PG가 아니라 관리자에서 활성화하는 ThirdParty 플러그인이에요. 실제 결제는 계약한 PG로 나가고, 부트페이가 그 결제 결과를 원스토어에 함께 통지해요.
pg 값에 onestore를 넣지 않아요. pg는 비워 두거나(관리자 기본 PG 사용) 실제 계약한 PG 코드를 넣어요.
items 필수 조건
원스토어 플러그인이 켜진 프로젝트는 items를 반드시 함께 보내야 해요.
| 시점 | 조건 | 누락 시 에러 |
|---|---|---|
| 결제 요청 | items 필수 |
RC_ONESTORE_NEED_ITEM (2056) |
| 부분 취소 | 취소 후 남은 items 필수 |
RC_ONESTORE_PC_ITEM_NEED (2054) |
각 항목은 id, name, qty(1 이상), price(1 이상)를 모두 채워요.
부분 취소에서는 남은 items의 합계(price × qty)가 취소 후 잔액과 정확히 일치해야 해요. 어긋나면 RC_ITEM_TOTAL_PRICE_INVALID 오류가 나요.
추가 파라미터
원스토어 결제 요청 시 extra.third_party.onestore 객체에 다음 파라미터를 넣어요.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
extra.third_party.onestore.ad_id |
String | 선택 | 광고 ID. 미입력 시 UNKNOWN_ADID로 전달돼요 |
extra.third_party.onestore.sim_operator |
String | 선택 | SIM 사업자 정보. 미입력 시 UNKNOWN_SIM_OPERATOR로 전달돼요 |
extra.third_party.onestore.installer_package_name |
String | 선택 | 설치 패키지 이름. 미입력 시 UNKNOWN_INSTALLER로 전달돼요 |
코드 예제
import { Bootpay } from '@bootpay/client-js'
const response = await Bootpay.requestPayment({
client_key: '[ Client Key ]',
pg: '', // 원스토어는 PG 코드가 아니에요. 비워 두거나 실제 계약한 PG 코드를 넣어요
method: '',
order_name: '원스토어 결제 테스트',
order_id: 'order_' + Date.now(), // 테스트용. 실제로는 서버에서 생성한 주문번호 사용
price: 1000,
items: [
{
id: 'item_001',
name: '아이템 1',
qty: 1,
price: 1000
}
],
extra: {
third_party: {
onestore: {
ad_id: '[ 광고 ID ]',
sim_operator: '[ SIM 사업자 ]',
installer_package_name: '[ 패키지명 ]'
}
}
}
})
console.log(response)javascript.webp)