UNPKG

enot-node

Version:

Generate URL for payment in Enot.

48 lines (39 loc) 1.39 kB
module.exports = (params, world) => { if (!params || !world || typeof params !== 'object') { throw new Error('Missing params and secret world'); } let result = {}, params_arr = [], url = 'https://enot.io/pay?'; params = JSON.parse(JSON.stringify(params)); if (params.oa) { params.oa = parseFloat(params.oa).toString(); } if (params.m && params.oa && params.o) { params_arr.push(params.m); params_arr.push(params.oa); params_arr.push(world); params_arr.push(params.o); } else if (params['merchant'] && params['amount'] && params['merchant_id']) { params_arr.push(params['merchant']); params_arr.push(params['amount']); params_arr.push(world); params_arr.push(params['merchant_id']); return {signature: require('crypto') .createHash('md5') .update(params_arr.join(':')) .digest('hex')}; } else { throw new Error('Required parameters are not specified'); } result.signature = require('crypto') .createHash('md5') .update(params_arr.join(':')) .digest('hex'); params.s = result.signature; Object.keys(params).forEach(function (p) { url += p + '=' + encodeURIComponent(params[p]) + '&'; }); result.url = url; return result; };