@bootpay/backend-js
Version:
Bootpay Server Side Package for Node.js
508 lines (507 loc) • 17.2 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Bootpay = void 0;
const resource_1 = require("./lib/resource");
class BootpayBackendNodejs extends resource_1.BootpayBackendNodejsResource {
constructor() {
super();
}
/**
* Get Access Token
* Comment by GOSOMI
* @returns Promise<AccessTokenResponseParameters>
*/
getAccessToken() {
return __awaiter(this, void 0, void 0, function* () {
try {
const { application_id, private_key } = this.bootpayConfiguration;
const response = yield this.post('request/token', {
application_id,
private_key
});
// set Token
this.setToken(response.access_token);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* Lookup Receipt
* Comment by GOSOMI
* @param receiptId: string
* @param lookupUserData: boolean
*/
receiptPayment(receiptId_1) {
return __awaiter(this, arguments, void 0, function* (receiptId, lookupUserData = false) {
try {
const response = yield this.get(`receipt/${receiptId}?lookup_user_data=${lookupUserData ? 'true' : 'false'}`);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* Cancel Payment
* Comment by GOSOMI
* @param cancelPayment: CancelPaymentParameters
* @returns Promise<CancelPaymentParameters>
*/
cancelPayment(cancelPayment) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('cancel', Object.assign({}, cancelPayment));
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* Lookup Certificate Data
* Comment by GOSOMI
* @param receiptId: string
* @returns Promise<CertificateResponseParameters>
*/
certificate(receiptId) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.get(`certificate/${receiptId}`);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* ConfirmPayment
* Comment by GOSOMI
* @param receiptId: string
* @returns Promise<ReceiptResponseParameters>
*/
confirmPayment(receiptId) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('confirm', {
receipt_id: receiptId
});
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* lookupSubscribeBillingKey
* Comment by GOSOMI
* @param receiptId: string
* @returns Promise<SubscriptionBillingResponseParameters>
*/
lookupSubscribeBillingKey(receiptId) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.get(`subscribe/billing_key/${receiptId}`);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* lookupBillingKey
* Comment by ehowlsla
* @param billingKey: string
* @returns Promise<SubscriptionBillingResponseParameters>
*/
lookupBillingKey(billingKey) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.get(`billing_key/${billingKey}`);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* requestSubscribeBillingKey
* Comment by GOSOMI
* @param subscriptionBillingRequest: SubscriptionBillingRequestParameters
* @returns Promise<SubscriptionBillingResponseParameters>
*/
requestSubscribeBillingKey(subscriptionBillingRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('request/subscribe', Object.assign({}, subscriptionBillingRequest));
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* requestSubscribeCardPayment
* Comment by GOSOMI
* @param subscriptionCardRequest: SubscriptionCardPaymentRequestParameters
* @returns Promise<ReceiptResponseParameters>
*/
requestSubscribeCardPayment(subscriptionCardRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('subscribe/payment', Object.assign({}, subscriptionCardRequest));
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* requestSubscribePayment
* Comment by ehowlsla
* @param subscriptionRequest: SubscriptionPaymentRequestParameters
* @returns Promise<ReceiptResponseParameters>
*/
requestSubscribePayment(subscriptionRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('subscribe/payment', Object.assign({}, subscriptionRequest));
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* destroyBillingKey
* Comment by GOSOMI
* @param billingKey:string
* @returns Promise<DestroySubscribeResponseParameters>
*/
destroyBillingKey(billingKey) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.delete(`subscribe/billing_key/${billingKey}`);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* requestUserToken
* Comment by GOSOMI
* @param userTokenRequest:UserTokenRequestParameters
* @returns Promise<UserTokenResponseParameters>
*/
requestUserToken(userTokenRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('request/user/token', Object.assign({}, userTokenRequest));
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* subscribePaymentReserve
* Comment by GOSOMI
* @param subscribePaymentReserveRequest:SubscribePaymentReserveParameters
* @returns Promise<SubscribePaymentReserveResponse>
*/
subscribePaymentReserve(subscribePaymentReserveRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('subscribe/payment/reserve', Object.assign({}, subscribePaymentReserveRequest));
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* SubscribeReserve Lookup
* Comment by GOSOMI
* @date: 2023-03-07
* @param reserveId: string
* @returns Promise<SubscribeLookupResponse>
*/
subscribePaymentReserveLookup(reserveId) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.get(`subscribe/payment/reserve/${reserveId}`);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* cancelSubscribeReserve
* Comment by GOSOMI
* @param reserveId:string
* @returns Promise<CancelSubscribeReserveResponse>
*/
cancelSubscribeReserve(reserveId) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.delete(`subscribe/payment/reserve/${reserveId}`);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 배송시작 REST API 시작
* Comment by GOSOMI
* @date: 2022-06-14
*/
shippingStart(shippingRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.put(`escrow/shipping/start/${shippingRequest.receipt_id}`, shippingRequest);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 기존결제 현금영수증 발행 API
* Comment by GOSOMI
* @date: 2022-07-28
*/
cashReceiptPublishOnReceipt(cashReceiptPublishRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('request/receipt/cash/publish', cashReceiptPublishRequest);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 기존 결제 현금영수증 발행 취소 API
* Comment by GOSOMI
* @date: 2022-08-09
*/
cashReceiptCancelOnReceipt(cashReceiptCancelRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.delete(`request/receipt/cash/cancel/${cashReceiptCancelRequest.receipt_id}`, {
params: cashReceiptCancelRequest
});
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 별건 현금영수증 발행하기
* Comment by GOSOMI
* @date: 2022-08-09
*/
requestCashReceipt(cashReceiptRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('request/cash/receipt', cashReceiptRequest);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 별건 현금영수증 취소하기
* Comment by GOSOMI
* @date: 2022-08-09
*/
cancelCashReceipt(cancelCashReceiptRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.delete(`request/cash/receipt/${cancelCashReceiptRequest.receipt_id}`, {
params: cancelCashReceiptRequest
});
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 본인인증 REST API 요청
* Comment by GOSOMI
* @date: 2022-11-07
*/
requestAuthentication(authenticateRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('request/authentication', authenticateRequest);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 본인인증 승인하기
* Comment by GOSOMI
* @date: 2022-11-07
*/
confirmAuthentication(receipt_id_1) {
return __awaiter(this, arguments, void 0, function* (receipt_id, otp = null) {
try {
const response = yield this.post('authenticate/confirm', {
receipt_id,
otp
});
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 본인인증 SMS 재전송
* Comment by GOSOMI
* @date: 2022-11-07
*/
realarmAuthentication(receipt_id) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('authenticate/realarm', {
receipt_id
});
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 계좌 자동이체를 위한 빌링키 발급 요청
* Comment by ehowlsla
* @date: 2024-05-27
*/
requestSubscribeAutomaticTransferBillingKey(parameters) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('request/subscribe/automatic-transfer', parameters);
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 계좌 자동이체를 위한 출금 동의 확인 요청
* Comment by ehowlsla
* @date: 2024-05-27
*/
publishAutomaticTransferBillingKey(receipt_id) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('request/subscribe/automatic-transfer/publish', {
"receipt_id": receipt_id
});
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 등록된 지갑 리스트 가져오기
* Comment by ehowlsla
* @date: 2025-03-16
*/
getUserWallets(user_id, sandbox) {
return __awaiter(this, void 0, void 0, function* () {
try {
const queryParams = new URLSearchParams({ user_id, sandbox: sandbox.toString() }).toString();
const response = yield this.get(`wallet?${queryParams}`);
return Promise.resolve(response);
}
catch (error) {
return Promise.reject(error);
}
});
}
// async getUserWallets(user_id: string, sandbox: boolean) {
// try {
// const response: WalletDataPart[] = await this.get<WalletDataPart[]>(`wallet?user_id=${user_id}&sandbox=${sandbox}`)
// return Promise.resolve(response)
// } catch (e) {
// return Promise.reject(e)
// }
// }
requestWalletPayment(walletRequest) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.post('wallet/payment', Object.assign({}, walletRequest));
return Promise.resolve(response);
}
catch (e) {
return Promise.reject(e);
}
});
}
}
const Bootpay = new BootpayBackendNodejs();
exports.Bootpay = Bootpay;
exports.default = Bootpay;
__exportStar(require("./lib/response"), exports);
__exportStar(require("./lib/resource"), exports);