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) {
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 {

View File

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

View File

@ -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 = {

View File

@ -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})

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