UNPKG

esnekpos

Version:

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

142 lines (126 loc) 3.77 kB
/** * Ödeme servisi */ const { validate3DPaymentRequest, validateCommonPaymentRequest } = require('../validators'); const { makeRequest } = require('../helpers/request'); const { ENDPOINTS } = require('../constants'); class PaymentService { /** * Ödeme servisini başlatır * @param {EsnekPOSClient} client - EsnekPOS istemcisi */ constructor(client) { this.client = client; } /** * 3D ödeme işlemi başlatır * @param {Object} paymentInfo - Ödeme bilgileri * @returns {Promise<Object>} - Ödeme sonucu */ async create3DPayment(paymentInfo) { const request = { Config: { MERCHANT: this.client.config.merchant, MERCHANT_KEY: this.client.config.merchantKey, ...paymentInfo.Config }, CreditCard: paymentInfo.CreditCard, Customer: paymentInfo.Customer, Product: paymentInfo.Product }; validate3DPaymentRequest(request); return makeRequest({ baseUrl: this.client.baseUrl, endpoint: ENDPOINTS.PAYMENT_3D, data: request }); } /** * Ortak ödeme sayfası ile ödeme başlatır * @param {Object} paymentInfo - Ödeme bilgileri * @returns {Promise<Object>} - Ödeme sonucu */ async createCommonPayment(paymentInfo) { const request = { Config: { MERCHANT: this.client.config.merchant, MERCHANT_KEY: this.client.config.merchantKey, ...paymentInfo.Config }, Customer: paymentInfo.Customer, Product: paymentInfo.Product }; validateCommonPaymentRequest(request); return makeRequest({ baseUrl: this.client.baseUrl, endpoint: ENDPOINTS.COMMON_PAYMENT, data: request }); } /** * BKM Express ile ödeme başlatır * @param {Object} paymentInfo - Ödeme bilgileri * @returns {Promise<Object>} - Ödeme sonucu */ async createBkmPayment(paymentInfo) { const request = { Config: { MERCHANT: this.client.config.merchant, MERCHANT_KEY: this.client.config.merchantKey, ...paymentInfo.Config }, Customer: paymentInfo.Customer, Product: paymentInfo.Product }; return makeRequest({ baseUrl: this.client.baseUrl, endpoint: ENDPOINTS.BKM_PAYMENT, data: request }); } /** * Android POS ile ödeme başlatır * @param {Object} paymentInfo - Ödeme bilgileri * @returns {Promise<Object>} - Ödeme sonucu */ async createPhysicalPosPayment(paymentInfo) { const request = { Config: { MERCHANT: this.client.config.merchant, MERCHANT_KEY: this.client.config.merchantKey, ...paymentInfo.Config }, Customer: paymentInfo.Customer, Product: paymentInfo.Product }; return makeRequest({ baseUrl: this.client.baseUrl, endpoint: ENDPOINTS.PHYSICAL_PAYMENT, data: request }); } /** * Pazaryeri ödemesi başlatır * @param {Object} paymentInfo - Ödeme bilgileri * @returns {Promise<Object>} - Ödeme sonucu */ async createMarketplacePayment(paymentInfo) { const request = { Config: { MERCHANT: this.client.config.merchant, MERCHANT_KEY: this.client.config.merchantKey, ...paymentInfo.Config }, CreditCard: paymentInfo.CreditCard, Customer: paymentInfo.Customer, Product: paymentInfo.Product, SubMerchantDetails: paymentInfo.SubMerchantDetails }; return makeRequest({ baseUrl: this.client.baseUrl, endpoint: ENDPOINTS.PAYMENT_3D, data: request }); } } module.exports = PaymentService;