UNPKG

@muhammedaksam/sipay-node

Version:

Node.js TypeScript SDK for Sipay payment gateway

78 lines 3.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Cards = void 0; const base_1 = require("./base"); const utils_1 = require("../utils"); class Cards extends base_1.SipayResource { /** * Save a credit card for future use */ async saveCard(cardData, options) { const data = this.addMerchantKey(cardData); // Generate hash key for save card // Hash format: merchant_key|customer_number|card_holder_name|card_number|expiry_month|expiry_year const hashParts = [ data.merchant_key, data.customer_number, data.cc_holder_name, data.cc_no, data.expiry_month, data.expiry_year, ]; data.hash_key = (0, utils_1.generateHashKey)(hashParts, this.client['config'].appSecret); return this.post('/api/saveCard', data, options); } /** * Get saved card tokens for a customer */ async getCardTokens(customerData, options) { const data = this.addMerchantKey(customerData); return this.get('/api/getCardTokens', data, options); } /** * Edit a saved card */ async editCard(cardData, options) { const data = this.addMerchantKey(cardData); // Generate hash key for edit card // Hash format: merchant_key|customer_number|card_token const hashParts = [data.merchant_key, data.customer_number, data.card_token]; data.hash_key = (0, utils_1.generateHashKey)(hashParts, this.client['config'].appSecret); return this.post('/api/editCard', data, options); } /** * Delete a saved card */ async deleteCard(cardData, options) { const data = this.addMerchantKey(cardData); // Generate hash key for delete card // Hash format: merchant_key|customer_number|card_token const hashParts = [data.merchant_key, data.customer_number, data.card_token]; data.hash_key = (0, utils_1.generateHashKey)(hashParts, this.client['config'].appSecret); return this.post('/api/deleteCard', data, options); } /** * Pay using a saved card token (3D Secure) */ async payByCardToken(paymentData, options) { const data = this.addMerchantKey(paymentData); // Generate hash key for card token payment // Hash format: total|installments_number|currency_code|merchant_key|invoice_id const hashKey = (0, utils_1.generatePaymentHashKey)(data.total, data.installments_number || 1, data.currency_code, data.merchant_key, data.invoice_id, this.client['config'].appSecret); data.hash_key = hashKey; return this.post('/api/payByCardToken', data, options); } /** * Pay using a saved card token (Non-Secure/2D) */ async payByCardTokenNonSecure(paymentData, options) { const data = this.addMerchantKey(paymentData); // Generate hash key for non-secure card token payment // Hash format: total|installments_number|currency_code|merchant_key|invoice_id const hashKey = (0, utils_1.generatePaymentHashKey)(data.total, data.installments_number || 1, data.currency_code, data.merchant_key, data.invoice_id, this.client['config'].appSecret); data.hash_key = hashKey; return this.post('/api/payByCardTokenNonSecure', data, options); } } exports.Cards = Cards; //# sourceMappingURL=cards.js.map