anypay-ts
Version:
TypeScript библиотека для работы с платёжной системой AnyPay
79 lines (78 loc) • 3.81 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateCreatePaymentSign = generateCreatePaymentSign;
exports.generatePaymentsListSign = generatePaymentsListSign;
exports.generateBalanceSign = generateBalanceSign;
exports.generateRatesSign = generateRatesSign;
exports.generateCommissionsSign = generateCommissionsSign;
exports.generateIpNotificationSign = generateIpNotificationSign;
exports.generateCreatePayoutSign = generateCreatePayoutSign;
exports.generatePayoutsSign = generatePayoutsSign;
const crypto_1 = __importDefault(require("crypto"));
/**
* Генерация подписи для создания нового платежа
* Формат хэша: SHA256('create-payment[API_ID][project_id][pay_id][amount][currency][desc][method][API_KEY]')
*/
function generateCreatePaymentSign(apiId, params, apiKey) {
const str = `create-payment${apiId}${params.project_id}${params.pay_id}${params.amount}${params.currency}${params.desc}${params.method}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}
/**
* Генерация подписи для запроса списка транзакций
* Формат хэша: SHA256('payments[API_ID][project_id][API_KEY]')
*/
function generatePaymentsListSign(apiId, apiKey, projectId) {
const str = `payments${apiId}${projectId}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}
/**
* Генерация подписи для запроса баланса проекта
* Формат хэша: SHA256('balance[API_ID][API_KEY]')
*/
function generateBalanceSign(apiId, apiKey) {
const str = `balance${apiId}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}
/**
* Генерация подписи для запроса курсов конвертации валют
* Формат хэша: SHA256('rates[API_ID][API_KEY]')
*/
function generateRatesSign(apiId, apiKey) {
const str = `rates${apiId}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}
/**
* Генерация подписи для запроса списка комиссий проекта
* Формат хэша: SHA256('commissions[API_ID][project_id][API_KEY]')
*/
function generateCommissionsSign(apiId, projectId, apiKey) {
const str = `commissions${apiId}${projectId}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}
/**
* Генерация подписи для запроса актуальных IP адресов уведомлений
* Формат хэша: SHA256('ip-notification[API_ID][API_KEY]')
*/
function generateIpNotificationSign(apiId, apiKey) {
const str = `ip-notification${apiId}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}
/**
* Генерация подписи для создания выплаты
* Формат хэша: SHA256('create-payout[API_ID][payout_id][payout_type][amount][wallet][API_KEY]')
*/
function generateCreatePayoutSign(apiId, payoutId, payoutType, amount, wallet, apiKey) {
const str = `create-payout${apiId}${payoutId}${payoutType}${amount}${wallet}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}
/**
* Генерация подписи для запроса списка выплат
* Формат хэша: SHA256('payouts[API_ID][API_KEY]')
*/
function generatePayoutsSign(apiId, apiKey) {
const str = `payouts${apiId}${apiKey}`;
return crypto_1.default.createHash('sha256').update(str).digest('hex');
}