node-redsys-api

0.0.5 • Public • Published

node-redysys-api

Node.js Redsys api implementation with new the key-hashed message authentication code (HMAC) SHA256 for the virtual payment gateway integration. This is a node.js port of the PHP API provided by Redsys

Installation

npm install node-redsys-api --save

Examples

const Redsys = require('node-redsys-api').Redsys;
...
//Snippet to obtain the signature & merchantParameters
function createPayment(description, total, titular, orderId, paymentId)
{
    const redsys = new Redsys();
    const mParams = {
        "DS_MERCHANT_AMOUNT":common.round(total*100).toString(),
        "DS_MERCHANT_ORDER":paymentId,
        "DS_MERCHANT_MERCHANTCODE":tpvInfo.fucCode,
        "DS_MERCHANT_CURRENCY":tpvInfo.currency,
        "DS_MERCHANT_TRANSACTIONTYPE":tpvInfo.transaction_type,
        "DS_MERCHANT_TERMINAL":tpvInfo.terminal,
        "DS_MERCHANT_MERCHANTURL":domain+tpvInfo.redirect_urls.callbackBasePath+'/'+orderId,
        "DS_MERCHANT_URLOK":domain+tpvInfo.redirect_urls.urlOK+'&id='+orderId,
        "DS_MERCHANT_URLKO":domain+tpvInfo.redirect_urls.urlKO+'&id='+orderId
    };

    return  {signature: redsys.createMerchantSignature(tpvInfo.secret, mParams) , merchantParameters: redsys.createMerchantParameters(mParams), raw: mParams};
}

//Snippet to process the TPV callback
const merchantParams = tpvResponse.Ds_MerchantParameters || tpvResponse.DS_MERCHANTPARAMETERS;
const signature = tpvResponse.Ds_Signature || tpvResponse.DS_SIGNATURE;

const merchantParamsDecoded = redsys.decodeMerchantParameters(merchantParams);
const merchantSignatureNotif = redsys.createMerchantSignatureNotif(tpvInfo.secret, merchantParams);
const dsResponse = parseInt(merchantParamsDecoded.Ds_Response || merchantParamsDecoded.DS_RESPONSE);

if (redsys.merchantSignatureIsValid(signature , merchantSignatureNotif) && dsResponse > -1 && dsResponse < 100 ) {
console.log('TPV payment is OK');
...
} else {
console.log('TPV payment KO');
...
}

Tests

npm run test

Alternative implementations

You can download Java, PHP, .NET implementations

Authors

Santi Pérez

License

MIT

Install

DownloadsWeekly Downloads

357

Version

0.0.5

License

MIT

Unpacked Size

12.5 kB

Total Files

10

Last publish

Collaborators

  • santiperez