UNPKG

esnekpos

Version:

Node.js entegrasyon paketi - EsnekPOS ödeme sistemi için resmi olmayan istemci

123 lines (109 loc) 3.49 kB
/** * 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;