@muhammedaksam/sipay-node
Version:
Node.js TypeScript SDK for Sipay payment gateway
78 lines • 3.41 kB
JavaScript
"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