/var/www/greso.tech/server/nsm/controllers/order/payment
NameSizeModeActions
authorize_webhook.js17460644editdlrm
cardknox_sale.js57740644editdlrm
cardknox_send_link.js30040644editdlrm
cardknox_webhook.js29630644editdlrm
create.js25380644editdlrm
delete.js10800644editdlrm
edit.js16840644editdlrm
list.js12110644editdlrm
Edit: /var/www/greso.tech/server/nsm/controllers/order/payment/cardknox_send_link.js (3004B)
module.exports = function ({ db, logger, config }) { const { NotFound, BadRequest } = require('../../../responseModels/errors') const { isSet, isEmail, isPhone, isEmpty, minLength, isNumber } = require('../../../utils/validator.util') const { httpsPost } = require('../../../utils/request.util') const uuid = require('uuid'); // var request = require("request"); var querystring = require('querystring'); return async (req, res, next) => { logger.child({ path: req.path, request: req.query }).info() let t1 = performance.now() try { var { id, orderId, payTypeId, merchantId, amount, } = req.body // load merchant const merchant = await db.merchants.findOne({ where: { id: merchantId } }) if (!merchant) { throw new BadRequest({ code: 2123, lang: req.user?.languageCode }) } // load order const order = await db.order.findOne({ where: { id: orderId } }) if (!order) { throw new BadRequest({ code: 2032, lang: req.user?.languageCode }) } // load user const user = await db.userEmail.findOne({ where: { userId: order.userId } }) if (!user) { throw new BadRequest({ code: 2011, lang: req.user?.languageCode }) } // check id if (!isSet(id) || isEmpty(id)) { id = uuid.v4() }else{ const paymentTest = await db.orderPayment.findOne({ where: { id: id } }) if (paymentTest) { throw new BadRequest({ code: 2000, lang: req.user?.languageCode }) } } if (!isSet(amount)||isEmpty(amount)) { throw new BadRequest({ code: 2046, lang: req.user?.languageCode }) } var params = { id, orderId, userId: req.user?.id, orderStatus: order.status, payTypeId, merchantId, summ: amount, status: 'Link sent...', } const paymentNew = await db.orderPayment.create(params) var message = merchant.emailLink + '?xamount=' + amount + "&xinvoice=" + order.number + "&xCustom01=" + paymentNew.id + "&xName=" + user.name + "&xEmail=" + user.email + "&xCommand=cc%3Asale"; const resultMail = await SERVICES.MailService.SendMail(user.email,message) var status = ''; if(resultMail){ status = "Link sent" }else{ status = "Error send" } if (!resultMail) { throw new BadRequest({ code: 3000, message: error, lang: req.user?.languageCode }) } const parseIp = (req) => req.headers['x-forwarded-for']?.split(',').shift() || req.socket?.remoteAddress paymentNew.ipAddress = parseIp(req) paymentNew.transactionType = 'link' paymentNew.confirmed = false paymentNew.status = status paymentNew.save() await SERVICES.OrderService.OrderStatus(order, 'orderEdit') const time = performance.now() - t1 return res.status(200).json({ status: 'success', id: paymentNew.id, time }) } catch (err) { next(err) } } }