success pug

This commit is contained in:
Sergey Yarkov 2020-01-10 18:12:35 +03:00
parent cdbb0cc162
commit 32f3cb6a00
5 changed files with 27 additions and 9 deletions

View File

@ -3,6 +3,7 @@ const ObjectID = require('mongodb').ObjectID;
module.exports = function(server, db, qiwiApi) { module.exports = function(server, db, qiwiApi) {
server.get('/success', (req, res) => { server.get('/success', (req, res) => {
const query = req.query; const query = req.query;
// qiwi // qiwi
if (query.bill_id && query.item_id && query.payment === 'qiwi') { if (query.bill_id && query.item_id && query.payment === 'qiwi') {
qiwiApi.getBillInfo(query.bill_id).then(async (data) => { qiwiApi.getBillInfo(query.bill_id).then(async (data) => {
@ -16,19 +17,21 @@ module.exports = function(server, db, qiwiApi) {
if (status === 'PAID') { if (status === 'PAID') {
const ids = query.item_id.split('and'); const ids = query.item_id.split('and');
const findBill = await db.collection('buyers').findOne({bill_id: query.bill_id}); const findBill = await db.collection('buyers').findOne({bill_id: query.bill_id});
if(findBill == null) { if(findBill == null) {
const result = []; const result = [];
//выдаем данные и создаем покупателя //выдаем данные и создаем покупателя
for (let i = 0; i < ids.length; i++) { for (let i = 0; i < ids.length; i++) {
const item = await db.collection('info').findOne({"_id": ObjectID(ids[i])}), const item = await db.collection('info').findOne({"_id": ObjectID(ids[i])}),
data = item.data; 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('info').updateOne({"_id": ObjectID(ids[i])}, {$set: {data: data}});
} }
db.collection('buyers').insertOne({bill_id, email, method, date, amount}); db.collection('buyers').insertOne({bill_id, email, method, date, amount, data: result});
res.send(result); res.render('main/success', {result, email});
} else { } else {
res.send('Этот заказ уже был оплачен. Данные были высланы покупателю.'); res.send('Этот заказ уже был оплачен. Данные были высланы покупателю.');
} }
@ -38,8 +41,7 @@ module.exports = function(server, db, qiwiApi) {
res.send('Время жизни счета истекло. Счет не оплачен'); res.send('Время жизни счета истекло. Счет не оплачен');
} }
}) })
.catch((error) => { .catch(() => {
console.log(error);
res.render('main/404'); res.render('main/404');
}); });
} else { } else {

View File

@ -117,7 +117,7 @@ module.exports = function (server, db) {
} }
}); });
})) }))
.catch((error) => { .catch(() => {
res.render('main/404'); res.render('main/404');
}); });
}); });

View File

@ -2,7 +2,6 @@ const ObjectID = require('mongodb').ObjectID;
module.exports = function(server, db, qiwiApi) { module.exports = function(server, db, qiwiApi) {
server.put('/payment', async (req, res) => { server.put('/payment', async (req, res) => {
// проверяем товар на его наличие
const ids = req.body.items.map(item => item.id); const ids = req.body.items.map(item => item.id);
const titles = req.body.items.map(item => item.title).join(','); const titles = req.body.items.map(item => item.title).join(',');
let empty = false; 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)}); const item = await db.collection('info').findOne({"_id": ObjectID(req.body.items[i].id)});
if (item.data.length === 0) empty = i; if (item.data.length === 0) empty = i;
} }
// проверяем товар на его наличие и создаем bill
if (empty === false) { if (empty === false) {
const billId = qiwiApi.generateId(); const billId = qiwiApi.generateId();
const fields = { const fields = {

View File

@ -16,7 +16,7 @@ const methodOverride = require('method-override');
const multer = require('multer'); const multer = require('multer');
const QiwiBillPaymentsAPI = require('@qiwi/bill-payments-node-js-sdk'); const QiwiBillPaymentsAPI = require('@qiwi/bill-payments-node-js-sdk');
const SECRET_KEY = '/'; const SECRET_KEY = '.';
const qiwiApi = new QiwiBillPaymentsAPI(SECRET_KEY); const qiwiApi = new QiwiBillPaymentsAPI(SECRET_KEY);
MongoClient.connect(db_config.url, {useNewUrlParser: true, useUnifiedTopology: true}) MongoClient.connect(db_config.url, {useNewUrlParser: true, useUnifiedTopology: true})

15
dist/views/main/success.pug vendored Normal file
View File

@ -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="/") Вернуться в магазин