esnekpos
Version:
Node.js entegrasyon paketi - EsnekPOS ödeme sistemi için resmi olmayan istemci
123 lines (109 loc) • 3.49 kB
JavaScript
/**
* Tekrarlı Ödeme Servisi
*/
const { makeRequest } = require('../helpers/request');
const { ENDPOINTS } = require('../constants');
class RecurringService {
/**
* Tekrarlı Ödeme Servisini başlatır
* @param {EsnekPOSClient} client - EsnekPOS istemcisi
*/
constructor(client) {
this.client = client;
}
/**
* Tekrarlı ödeme başlatır
* @param {Object} options - Tekrarlı ödeme bilgileri
* @returns {Promise<Object>} - İşlem sonucu
*/
async createRecurringPayment(options) {
const request = {
Config: {
MERCHANT: this.client.config.merchant,
MERCHANT_KEY: this.client.config.merchantKey,
...options.Config
},
Cards: options.Cards,
Customer: options.Customer
};
return makeRequest({
baseUrl: this.client.baseUrl,
endpoint: ENDPOINTS.RECURRING_PAYMENT,
data: request
});
}
/**
* Tekrarlı ödemeyi iptal eder
* @param {string} orderRefNumber - Tekrarlı ödeme sipariş referans numarası
* @returns {Promise<Object>} - İşlem sonucu
*/
async cancelRecurringPayment(orderRefNumber) {
const request = {
MERCHANT: this.client.config.merchant,
MERCHANT_KEY: this.client.config.merchantKey,
ORDER_REF_NUMBER: orderRefNumber
};
return makeRequest({
baseUrl: this.client.baseUrl,
endpoint: ENDPOINTS.RECURRING_PAYMENT_CANCEL,
data: request
});
}
/**
* Tekrarlı ödemeleri listeler
* @param {Object} dateRange - Tarih aralığı
* @param {string} dateRange.startDate - Başlangıç tarihi (GG-AA-YYYY)
* @param {string} dateRange.endDate - Bitiş tarihi (GG-AA-YYYY)
* @returns {Promise<Object>} - Tekrarlı ödeme listesi
*/
async listRecurringPayments(dateRange) {
const request = {
MERCHANT: this.client.config.merchant,
MERCHANT_KEY: this.client.config.merchantKey,
START_DATE: dateRange.startDate,
END_DATE: dateRange.endDate
};
return makeRequest({
baseUrl: this.client.baseUrl,
endpoint: ENDPOINTS.RECURRING_PAYMENT_LIST,
data: request
});
}
/**
* Tekrarlı ödeme sorgular
* @param {string} orderRefNumber - Tekrarlı ödeme sipariş referans numarası
* @returns {Promise<Object>} - Tekrarlı ödeme detayları
*/
async queryRecurringPayment(orderRefNumber) {
const request = {
MERCHANT: this.client.config.merchant,
MERCHANT_KEY: this.client.config.merchantKey,
ORDER_REF_NUMBER: orderRefNumber
};
return makeRequest({
baseUrl: this.client.baseUrl,
endpoint: ENDPOINTS.RECURRING_PAYMENT_QUERY,
data: request
});
}
/**
* Tekrarlı ödemeye kart ekler
* @param {string} orderRefNumber - Tekrarlı ödeme sipariş referans numarası
* @param {Object} cardInfo - Kart bilgileri
* @returns {Promise<Object>} - İşlem sonucu
*/
async addCardToRecurringPayment(orderRefNumber, cardInfo) {
const request = {
MERCHANT: this.client.config.merchant,
MERCHANT_KEY: this.client.config.merchantKey,
ORDER_REF_NUMBER: orderRefNumber,
CARD: cardInfo
};
return makeRequest({
baseUrl: this.client.baseUrl,
endpoint: ENDPOINTS.RECURRING_PAYMENT_CARD_ADD,
data: request
});
}
}
module.exports = RecurringService;