ipg-node
v1.2.2
Published
Iranian payment gateway
Downloads
10
Maintainers
Readme
IPG-node
Iranian payment gateway
Unofficially implementing Iranian payment gateways in Node.JS
Installation
Install the package from npm
.
NPM
npm install ipg-node
Usage:
Import and set configuration
const ipg = require('ipg-node');
ipg.config = {
mellat: {
credentail: {
terminalId: process.env.MELLAT_TERMINALID,
userName: process.env.MELLAT_USERNAME,
userPassword: process.env.MELLAT_USERPASSWORD,
},
callbackUrl: `http://your.domain.com/checkout?gate=${ipg.Types.Mellat}`,
currencyIsToman: false,
},
melli: {
credentail: {
TerminalId: process.env.MELLI_TERMINALID,
MerchantId: process.env.MELLI_MERCHANTID,
TerminalKey: process.env.MELLI_TERMINALKEY,
},
callbackUrl: `http://your.domain.com/checkout?gate=${ipg.Types.Melli}`,
currencyIsToman: false,
},
saderat: {
credentail: {
terminalID: process.env.MELLI_TERMINALID,
},
callbackUrl: `http://your.domain.com/checkout?gate=${ipg.Types.Saderat}`,
currencyIsToman: false,
},
};
API
Payment Request:
Mellat:
ipg
.request(ipg.Types.Mellat, amount)
.then((result) => {
if (result.success) {
//result.RefId,
} else {
//result.ResCode,
//result.message
}
})
.catch((error) => console.log(error));
Melli:
ipg
.request(ipg.Types.Melli, amount)
.then((result) => {
if (result.success) {
// result.ResCode,
// result.message,
// result.Token,
// ....
// save invoice
} else {
// result.ResCode,
// result.message
}
})
.catch((error) => console.log(error));
Saderat:
ipg
.request(ipg.Types.Saderat, amount)
.then((result) => {
if (result.success) {
// result.AccessToken,
// ....
// save invoice
} else {
// result.Status,
// result.message
}
})
.catch((error) => console.log(error));
Verifing Payment:
Mellat
ipg
.verify(ipg.Types.Mellat, {
orderId: req.body.SaleOrderId,
saleOrderId: req.body.SaleOrderId,
saleReferenceId: req.body.SaleReferenceId,
})
.then((result) => {
if (result.success) {
// ....
// save invoice
} else {
// result.ResCode,
// result.message
}
})
.catch((error) => console.log(error));
Melli
ipg
.verify(ipg.Types.Melli, { token })
.then((result) => {
if (result.success) {
// result.ResCode,
// result.message,
// result.OrderId,
// result.RetrivalRefNo,
// result.SystemTraceNo,
// ....
//save invoice
} else {
//result.ResCode,
//result.message
}
})
.catch((error) => console.log(error));
Refund Payment:
Mellat
ipg
.refund(ipg.Types.Mellat, {
orderId,
saleOrderId,
saleReferenceId,
refundAmount,
})
.then((result) => {
if (result.success) {
// result.TransactionCode,
// ....
// save invoice
} else {
// result.message,
// result.ResCode,
}
})
.catch((error) => console.log(error));
Melli
ipg
.refund(ipg.Types.Melli, {
retrivalRef,
systemTraceNo,
refundAmount,
amount,
token,
})
.then((result) => {
if (result.success) {
//save invoice
} else {
//result.ResCode,
//result.message
}
})
.catch((error) => console.log(error));
Implemented Gateways
- [x] Mellat
- [x] Melli
- [x] Saderat
- [x] Nextpay
Contributing
Contributions are welcome. Please submit PRs or just file an Issue if you see something broken or in need of improving.