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