node-nestpay-v3
Version:
A Node.js wrapper for the NestPay V3 API
46 lines (41 loc) • 1.75 kB
JavaScript
;
var crypto = require("crypto");
var currencyCodes = require("currency-codes");
module.exports = function (nestpay) {
nestpay.prototype.secureAuthorize = function (value = {}) {
var that = this;
return new Promise(function (resolve, reject) {
var currencyNumber = currencyCodes.code(value.currency || that.config.currency);
currencyNumber = currencyNumber ? currencyNumber.number : "";
var data = {
Name: that.config.name,
Password: that.config.password,
ClientId: that.config.clientId,
Mode: that.config.mode,
Type: "PreAuth",
Currency: currencyNumber,
Taksit: value.installment || undefined,
OrderId: value.orderId ? value.orderId : value.oid,
GroupId: value.groupId || "",
TransId: value.transId || "",
UserId: value.userId || "",
Total: value.amount || "",
CardholderPresentCode: "13", //
};
var sha = crypto
.createHash("sha512")
.update(value.HASHPARAMSVAL + (value.storekey || that.config.storekey))
.digest("base64");
if (sha != value.HASH) {
reject("invalid hash");
} else {
data.Number = value.md;
data.PayerTxnId = value.xid;
data.PayerSecurityLevel = value.eci;
data.PayerAuthenticationCode = value.cavv;
var url = that.config.endpoints[that.config.endpoint];
that.request(url, data).then(resolve).catch(reject);
}
});
};
};