momo-payment-sdk
Version:
Momo Wallet payment by QR code
135 lines (121 loc) • 3.13 kB
Markdown
The module will make it easier for you to integrate with Momo Wallet payments by QR code

Requires successful registration of Momo partner first
Use the package manager [npm](https://www.npmjs.com/) to install.
```bash
npm i momo-payment-sdk
```
```javascript
const MomoPayment = require('momo-payment-sdk');
/* HOST_WEBHOOK => MoMo system will call to your URL for alert the result */
const HOST_WEBHOOK = process.env.HOST_WEBHOOK;
/*
constructor: partnerCode, accessKey, secretKey => provided from Momo
constructor: environment = "live" || "sandbox"
*/
class MomoPaymentService {
constructor(partnerCode, accessKey, secretKey, environment) {
this.momoPayment = new MomoPayment({
partnerCode,
accessKey,
secretKey,
environment,
});
}
/* Return the URL payment by QR code */
async createPayment({
orderId,
amount,
orderInfo = 'Your message',
returnUrl = 'https://your-website.com',
}) {
try {
if (!orderId || !amount || !message || !orderInfo) {
throw new Error('invalid input');
}
const result = await this.momoPayment.createPayment({
requestId: `ID-${orderId}`,
orderId,
amount: amount.toString(),
orderInfo,
returnUrl,
notifyUrl: HOST_WEBHOOK,
});
return result.data;
} catch (error) {
console.error(error)
throw error;
}
}
/* Rollback the transaction */
async refundPayment({ requestId, orderId, amount, transId }) {
try {
if (!orderId || !amount || !transId) {
throw new Error('invalid input');
}
const result = await this.momoPayment.refundPayment({
requestId,
orderId,
amount,
transId,
});
return result.data;
} catch (error) {
console.error(error)
throw error;
}
}
/* The function for verify webhook request */
verifySignature({
signature,
requestId,
orderId,
amount,
orderInfo,
orderType,
transId,
message,
localMessage,
responseTime,
errorCode,
payType,
}) {
try {
const result = this.momoPayment.verifySignature({
signature,
requestId,
orderId,
amount,
orderInfo,
orderType,
transId,
message,
localMessage,
responseTime,
errorCode,
payType,
});
return result;
} catch (error) {
console.error(error)
throw error;
}
}
}
module.exports = MomoPaymentService;
```
Pull requests are welcome
Mail: hoangtran2198@gmail.com
Skype: tranminhhoangnct@gmail.com
Documentation: https://developers.momo.vn/v2/#/docs/qr_payment
[](https://choosealicense.com/licenses/mit/)
[](https://github.com/hoangtran2)
| [Hoang Tran](https://hoangtran.dev) |