From 32f3cb6a00c2c0345ad7f0a2b8118bafbde434ec Mon Sep 17 00:00:00 2001 From: Sergey Yarkov Date: Fri, 10 Jan 2020 18:12:35 +0300 Subject: [PATCH] success pug --- config/routes/invoice.js | 14 ++++++++------ config/routes/main.js | 2 +- config/routes/payments/qiwi.payment.js | 3 ++- config/server.js | 2 +- dist/views/main/success.pug | 15 +++++++++++++++ 5 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 dist/views/main/success.pug diff --git a/config/routes/invoice.js b/config/routes/invoice.js index 05049bd..f85e6f8 100644 --- a/config/routes/invoice.js +++ b/config/routes/invoice.js @@ -3,6 +3,7 @@ const ObjectID = require('mongodb').ObjectID; module.exports = function(server, db, qiwiApi) { server.get('/success', (req, res) => { const query = req.query; + // qiwi if (query.bill_id && query.item_id && query.payment === 'qiwi') { qiwiApi.getBillInfo(query.bill_id).then(async (data) => { @@ -16,19 +17,21 @@ module.exports = function(server, db, qiwiApi) { if (status === 'PAID') { const ids = query.item_id.split('and'); const findBill = await db.collection('buyers').findOne({bill_id: query.bill_id}); + if(findBill == null) { const result = []; + //выдаем данные и создаем покупателя for (let i = 0; i < ids.length; i++) { const item = await db.collection('info').findOne({"_id": ObjectID(ids[i])}), data = item.data; - result.push(data.splice(-1, 1)); + result.push(data.splice(-1, 1)); db.collection('info').updateOne({"_id": ObjectID(ids[i])}, {$set: {data: data}}); } - - db.collection('buyers').insertOne({bill_id, email, method, date, amount}); - res.send(result); + + db.collection('buyers').insertOne({bill_id, email, method, date, amount, data: result}); + res.render('main/success', {result, email}); } else { res.send('Этот заказ уже был оплачен. Данные были высланы покупателю.'); } @@ -38,8 +41,7 @@ module.exports = function(server, db, qiwiApi) { res.send('Время жизни счета истекло. Счет не оплачен'); } }) - .catch((error) => { - console.log(error); + .catch(() => { res.render('main/404'); }); } else { diff --git a/config/routes/main.js b/config/routes/main.js index 2a93ad1..5bcbd87 100644 --- a/config/routes/main.js +++ b/config/routes/main.js @@ -117,7 +117,7 @@ module.exports = function (server, db) { } }); })) - .catch((error) => { + .catch(() => { res.render('main/404'); }); }); diff --git a/config/routes/payments/qiwi.payment.js b/config/routes/payments/qiwi.payment.js index 158f3c2..2774a03 100644 --- a/config/routes/payments/qiwi.payment.js +++ b/config/routes/payments/qiwi.payment.js @@ -2,7 +2,6 @@ const ObjectID = require('mongodb').ObjectID; module.exports = function(server, db, qiwiApi) { server.put('/payment', async (req, res) => { - // проверяем товар на его наличие const ids = req.body.items.map(item => item.id); const titles = req.body.items.map(item => item.title).join(','); let empty = false; @@ -11,6 +10,8 @@ module.exports = function(server, db, qiwiApi) { const item = await db.collection('info').findOne({"_id": ObjectID(req.body.items[i].id)}); if (item.data.length === 0) empty = i; } + + // проверяем товар на его наличие и создаем bill if (empty === false) { const billId = qiwiApi.generateId(); const fields = { diff --git a/config/server.js b/config/server.js index e1ce9b9..05a657c 100644 --- a/config/server.js +++ b/config/server.js @@ -16,7 +16,7 @@ const methodOverride = require('method-override'); const multer = require('multer'); const QiwiBillPaymentsAPI = require('@qiwi/bill-payments-node-js-sdk'); -const SECRET_KEY = '/'; +const SECRET_KEY = '.'; const qiwiApi = new QiwiBillPaymentsAPI(SECRET_KEY); MongoClient.connect(db_config.url, {useNewUrlParser: true, useUnifiedTopology: true}) diff --git a/dist/views/main/success.pug b/dist/views/main/success.pug new file mode 100644 index 0000000..b47b8f9 --- /dev/null +++ b/dist/views/main/success.pug @@ -0,0 +1,15 @@ +//- Head HTML +include ./assets/head.pug + +main.main-section + .container + .row + .col.s12 + h1(style="margin-top: 2rem;font-size:70px;margin-bottom:2rem;") Успешно! + p Данные аккаунтов были высланы на почту: #{email} + br + ul + each val in result + li= val + + a(href="/") Вернуться в магазин \ No newline at end of file