컬쳐랜드 모바일웹을 자동화해주는 비공식 라이브러리입니다.
로그인, 잔액조회, 충전, 선물 등 자주 사용되는 대부분의 기능을 지원합니다.
기능 추가 요청은 이슈 / 풀 리퀘스트 / 디스코드 서버를 이용해주세요.
교육용 및 학습용으로만 사용해 주세요
이 프로젝트 혹은 리포지토리를 사용함으로써 발생하는 모든 피해나 손실은 모두 본인의 책임입니다.
아래 서버에서 도움을 요청해 보세요!
Discord xB2Jae97z7
터미널에서 아래 명령어를 입력하여 라이브러리를 설치해주세요:
npm install cultureland.js@dev
const Cultureland = require("cultureland.js"); // CommonJS style
import Cultureland from "cultureland.js"; // ES style
const client = new Cultureland();
아이디와 비밀번호를 사용하여 컬쳐랜드에 로그인합니다.
<Cultureland>.login(credentials: { id: string; password: string; }): Promise<CulturelandLogin>
파라미터:
- credentials
- id (string): 컬쳐랜드 ID
- password (string): 컬쳐랜드 비밀번호
반환값:
- CulturelandLogin
- userId (string): 컬쳐랜드 ID
- keepLoginInfo (string): 로그인 유지 쿠키
await client.login({ id: "id", password: "pw" })
.then(creds => console.log(`로그인 성공 | 아이디: ${creds.userId} | 로그인 유지 쿠키: ${creds.keepLoginInfo}`))
.catch(console.error);
로그인 유지 쿠키를 사용하여 컬쳐랜드에 로그인합니다.
<Cultureland>.login(keepLoginInfo: string): Promise<CulturelandLogin>
파라미터:
- keepLoginInfo (string): 로그인 유지 쿠키
반환값:
- CulturelandLogin
- userId (string): 컬쳐랜드 ID
- keepLoginInfo (string): 로그인 유지 쿠키
await client.login("KeepLoginConfig")
.then(creds => console.log(`로그인 성공 | 아이디: ${creds.userId} | 로그인 유지 쿠키: ${creds.keepLoginInfo}`))
.catch(console.error);
컬쳐랜드 계정의 컬쳐캐쉬 잔액을 가져옵니다.
<Cultureland>.getBalance(): Promise<CulturelandBalance>
반환값:
- CulturelandBalance
- balance (number): 사용 가능 금액
- safeBalance (number): 보관중인 금액 (안심금고)
- totalBalance (number): 총 잔액 (사용 가능 금액 + 보관중인 금액)
await client.getBalance()
.then(balance => console.log(`잔액: ${balance.balance.toLocaleString()}원 | 안심금고: ${balance.safeBalance.toLocaleString()}원`))
.catch(console.error);
컬쳐랜드상품권(모바일문화상품권) 및 문화상품권(18자리)을 컬쳐캐쉬로 충전합니다.
지류/온라인문화상품권(18자리)은 2022.12.31 이전 발행 건만 충전 가능합니다.
상품권이 한개일 경우 핀 핀번호가 틀리면 InvalidPinError를 throw합니다.
상품권이 여러개일 경우 핀번호가 틀려도 에러를 throw하지 않습니다.
<Cultureland>.charge(pins: Pin | Pins[]): Promise<CulturelandCharge | CulturelandCharge[]>
파라미터:
- pins (Pin | Pins[]): 상품권(들)의 핀번호
반환값:
- CulturelandCharge | CulturelandCharge[]
- message (string): 성공 여부 메시지 -
충전 완료
상품권지갑 보관
잔액이 0원인 상품권
상품권 번호 불일치
- amount (number): 충전 금액
- message (string): 성공 여부 메시지 -
const { Pin } = require("cultureland.js"); // CommonJS style
import { Pin } from "cultureland.js"; // ES style
// 한 개의 핀번호 충전
await client.charge(new Pin("3110-0123-4567-8901"))
.then(charge => console.log(`${charge.message} | ${charge.amount.toLocaleString()}원`))
.catch(console.error);
// 여러개의 핀번호 충전
await client.charge([
new Pin("3110-0123-4567-8901"),
new Pin("3110-0123-4567-8901")
]).then(console.log);
컬쳐캐쉬를 사용해 컬쳐랜드상품권(모바일문화상품권)을 휴대폰 번호로 선물합니다.
<Cultureland>.gift(amount: number, phoneNumber?: string): Promise<CulturelandGift>
파라미터:
- amount (number): 구매 금액 (최소 1천원부터 최대 5만원까지 100원 단위로 입력 가능)
- phoneNumber? (string): 수신자 휴대폰 번호
반환값:
- CulturelandGift
- pin (Pin): 선물 바코드 번호
- url (string): 선물 바코드 URL
- controlCode (string): 선물 발행번호
// 5000원권 1장을 나에게 선물
await client.gift(5000)
.then(gift => console.log(`핀번호: ${gift.pin.toString()} | URL: ${gift.url}`))
.catch(console.error);
// 5000원권 1장을 010-1234-5678에게 선물
await client.gift(5000, "01012345678")
.then(gift => console.log(`핀번호: ${gift.pin.toString()} | URL: ${gift.url}`))
.catch(console.error);
컬쳐캐쉬를 사용해 Google Play 기프트 코드를 본인 번호로 구매합니다.
안심금고가 활성화되어 있어야 합니다.
구매 금액의 3% 수수료가 발생됩니다. (전환 비율 1.03:1)
<Cultureland>.giftGooglePlay(amount: number, quantity: number = 1): Promise<CulturelandGooglePlay[]>
파라미터:
- amount (number): 구매 금액 (5천원, 1만원, 1만5천원, 3만원, 5만원, 10만원, 15만원, 20만원)
- quantity (number): 구매 수량 (최대 10개)
반환값:
- CulturelandGooglePlay[]
- pin (string): 기프트 코드 번호
- url (string): 자동 입력 URL
- certNumber (string): 발행번호 (인증번호)
// 10000원권 1장을 구매하여 나에게 전송, 컬쳐캐쉬 10300원 차감
await client.giftGooglePlay(10000);