UNPKG

@muhammedaksam/sipay-node

Version:

Node.js TypeScript SDK for Sipay payment gateway

88 lines 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SubMerchant = void 0; const base_1 = require("./base"); const utils_1 = require("../utils"); class SubMerchant extends base_1.SipayResource { /** * Add a new standard sub merchant */ async add(subMerchantData, options) { const data = this.addMerchantKey(subMerchantData); return this.post('/api/sub-merchant/add', data, options); } /** * Edit a standard sub merchant */ async edit(editData, options) { const data = this.addMerchantKey(editData); return this.post('/api/sub-merchant/edit', data, options); } /** * Delete a standard sub merchant */ async delete(deleteData, options) { const data = this.addMerchantKey(deleteData); return this.post('/api/sub-merchant/delete', data, options); } /** * List all standard sub merchants */ async list(listData, options) { const data = this.addMerchantKey(listData || {}); return this.post('/api/sub-merchant/list', data, options); } /** * Add a new sub merchant PF (Physical Person) */ async addPF(subMerchantData, options) { const data = this.addMerchantKey(subMerchantData); return this.post('/api/addSubMerchantPF', data, options); } /** * Delete a sub merchant PF */ async deletePF(deleteData, options) { const data = this.addMerchantKey(deleteData); return this.post('/api/deleteSubMerchantPF', data, options); } /** * View details of a sub merchant PF */ async viewPF(viewData, options) { const data = this.addMerchantKey(viewData); return this.post('/api/subMerchantPF/view', data, options); } /** * List all sub merchants PF */ async listPF(listData, options) { const data = this.addMerchantKey(listData || {}); return this.post('/api/listSubMerchantPF', data, options); } /** * Make payout to sub merchants * Hash format: sub_merchant_id|currency_code|amount for each payout item */ async payout(payoutData, options) { const data = this.addMerchantKey(payoutData); // Generate hash key for payout // According to the spec: $data = $submerchant.'|'.$currency_code.'|'.$amount; // We need to generate hash for the first payout item (or combined if multiple) if (data.payout_data && data.payout_data.length > 0) { const firstPayout = data.payout_data[0]; const hashParts = [ firstPayout.sub_merchant_id, firstPayout.currency_code, firstPayout.amount, ]; data.hash_key = (0, utils_1.generateHashKey)(hashParts, this.client['config'].appSecret); } else { throw new Error('Payout data is required'); } return this.post('/ccpayment/api/marketplace/sub-merchant/payout', data, options); } } exports.SubMerchant = SubMerchant; //# sourceMappingURL=sub-merchant.js.map