UNPKG

payu-websdk

Version:
39 lines (32 loc) 1.43 kB
const hasher = require('../utils/hasher'); const PayuErrors = require('../Error'); const htmlEncoder = require('../utils/htmlencoder'); /** * PayU payment initiate function * @param {Object} credes - PayU credentials * @param {Object} params - Payment parameters * @returns {string} - HTML form with auto-submit */ module.exports = function app(credes, params) { const hash = hasher.paymentHasher(credes, params); params.hash = hash; params.key = credes.key; function inputGen(name, val) { const encodedName = htmlEncoder.encodeHTMLAttribute(name); let encodedValue; if (typeof val === 'object') { encodedValue = htmlEncoder.encodeJSONForHTML(val); } else { encodedValue = htmlEncoder.encodeHTMLAttribute(String(val)); } return `<input type="hidden" name="${encodedName}" value="${encodedValue}" />`; } const formAction = htmlEncoder.encodeHTMLAttribute(credes.paymentURL); const header = `<form name="payment_post" id="payment_post" action="${formAction}" method="post">`; const footer = `</form><script type="text/javascript">window.onload=function(){document.forms['payment_post'].submit();};</script>`; let inputs = header; for (let key in params) { inputs += inputGen(key, params[key]); } return inputs + footer; };