UNPKG

@muhammedaksam/sipay-node

Version:

Node.js TypeScript SDK for Sipay payment gateway

74 lines 3.26 kB
import { SipayResource } from './base'; import { generateHashKey, generatePaymentHashKey } from '../utils'; export class Cards extends 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 = 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 = 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 = 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 = 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 = 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); } } //# sourceMappingURL=cards.js.map