mirror of
https://github.com/sergeyyarkov/digital-store.git
synced 2026-10-11 10:19:15 +03:00
buyer add
This commit is contained in:
parent
35e81d95b3
commit
2de28b8b9a
@ -1,2 +1,3 @@
|
||||
# Digital Store
|
||||
#### Control-panel auth: digital-store@support.ru:admin
|
||||
#### Demo: https://polar-peak-95205.herokuapp.com/
|
||||
@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
url: 'local',
|
||||
url: 'mongodb+srv://ds_user1:zBD4b6kQbKAK2ar@cluster0-vtuzl.mongodb.net/test?retryWrites=true',
|
||||
name: 'digital_store'
|
||||
}
|
||||
36
config/routes/invoice.js
Normal file
36
config/routes/invoice.js
Normal file
@ -0,0 +1,36 @@
|
||||
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) => {
|
||||
const bill_id = query.bill_id,
|
||||
status = data.status.value,
|
||||
email = data.customer.email,
|
||||
method = 'qiwi',
|
||||
date = data.status.changedDateTime,
|
||||
amount = data.amount.value;
|
||||
|
||||
if (status === 'PAID') {
|
||||
const findBill = await db.collection('buyers').findOne({bill_id: query.bill_id});
|
||||
if (findBill == null) {
|
||||
// создаем покупателя
|
||||
db.collection('buyers').insertOne({bill_id, email, method, date, amount});
|
||||
res.send('Выдаем данные!');
|
||||
} else {
|
||||
res.send('Ошибка');
|
||||
}
|
||||
} else if (status === 'WAITING') {
|
||||
res.send('Инвоис ждет оплаты');
|
||||
} else if (status === 'EXPIRED') {
|
||||
res.send('Время жизни счета истекло. Счет не оплачен');
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
res.send('произошла ошибка!');
|
||||
});
|
||||
} else {
|
||||
res.send('bad request');
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -1,10 +1,6 @@
|
||||
const QiwiBillPaymentsAPI = require('@qiwi/bill-payments-node-js-sdk');
|
||||
|
||||
const SECRET_KEY = '';
|
||||
const qiwiApi = new QiwiBillPaymentsAPI(SECRET_KEY);
|
||||
module.exports = function(server, db) {
|
||||
module.exports = function(server, db, qiwiApi) {
|
||||
server.put('/payment', (req, res) => {
|
||||
const billId = qiwiApi.generateId();
|
||||
const billId = qiwiApi.generateId();
|
||||
const fields = {
|
||||
amount: req.body.totalPrice,
|
||||
currency: 'RUB',
|
||||
@ -12,7 +8,7 @@ module.exports = function(server, db) {
|
||||
expirationDateTime: qiwiApi.getLifetimeByDay(),
|
||||
customFields: {themeCode: 'Sergei-YaS7mIY0CQe'},
|
||||
email: req.body.email,
|
||||
successUrl: `http://test.ru/`
|
||||
successUrl: `https://polar-peak-95205.herokuapp.com/success?bill_id=${billId}&item_id=${req.body.items[0].id}&payment=qiwi`
|
||||
}
|
||||
qiwiApi.createBill(billId, fields).then((data) => {
|
||||
res.send(data);
|
||||
|
||||
@ -14,6 +14,10 @@ const session = require('express-session');
|
||||
const MongoStore = require('connect-mongo')(session);
|
||||
const methodOverride = require('method-override');
|
||||
const multer = require('multer');
|
||||
const QiwiBillPaymentsAPI = require('@qiwi/bill-payments-node-js-sdk');
|
||||
|
||||
const SECRET_KEY = '/';
|
||||
const qiwiApi = new QiwiBillPaymentsAPI(SECRET_KEY);
|
||||
|
||||
MongoClient.connect(db_config.url, {useNewUrlParser: true, useUnifiedTopology: true})
|
||||
.then((client) => {
|
||||
@ -32,12 +36,7 @@ MongoClient.connect(db_config.url, {useNewUrlParser: true, useUnifiedTopology: t
|
||||
server.use(express.urlencoded({ extended: false }));
|
||||
server.use(express.json());
|
||||
server.use(flash());
|
||||
server.use(session({secret: process.env.SESSION_SECRET,resave: false,saveUninitialized: false, store:
|
||||
new MongoStore({
|
||||
url: db_config.url,
|
||||
touchAfter: 24 * 3600 // time period in seconds
|
||||
})
|
||||
}));
|
||||
server.use(session({secret: process.env.SESSION_SECRET,resave: false,saveUninitialized: false}));
|
||||
server.use(passport.initialize());
|
||||
server.use(passport.session());
|
||||
server.use(methodOverride('_method'));
|
||||
@ -49,9 +48,10 @@ MongoClient.connect(db_config.url, {useNewUrlParser: true, useUnifiedTopology: t
|
||||
require('./routes/admin')(server, db); // маршрут с формой авторизации админа
|
||||
require('./routes/control-panel')(server, db); // маршруты с панелью управления
|
||||
require('./routes/api')(server, db); // отдача данных клиенту
|
||||
require('./routes/invoice')(server, db, qiwiApi);
|
||||
|
||||
// Payments
|
||||
require('./routes/payments/qiwi.payment')(server, db);
|
||||
require('./routes/payments/qiwi.payment')(server, db, qiwiApi);
|
||||
|
||||
// 404 Redirect
|
||||
server.use((req, res) => res.status(404).render('main/404'));
|
||||
|
||||
@ -51,17 +51,16 @@ export class PaginationComponent extends Component {
|
||||
|
||||
// выполняем запрос на сервер и выводим на данные
|
||||
async moveTo(page, insertTo, request) {
|
||||
this.loader.show();
|
||||
insertTo.innerHTML = '';
|
||||
const response = await request(page);
|
||||
|
||||
if (response != '') {
|
||||
this.$el.setAttribute('data-page', page);
|
||||
insertTo.innerHTML = '';
|
||||
this.loader.show();
|
||||
insertTo.insertAdjacentHTML('afterbegin', response);
|
||||
this.loader.hide();
|
||||
insertTo.insertAdjacentHTML('afterbegin', response);
|
||||
} else {
|
||||
insertTo.innerHTML = 'Данных нету.';
|
||||
}
|
||||
this.loader.hide();
|
||||
}
|
||||
|
||||
moveNext(page, li, insertTo, request) {
|
||||
|
||||
@ -27,4 +27,4 @@ const itemDelete = new ItemDeleteModal('deleteItemModal', 'edit', 'deleteItemClo
|
||||
const categoryEdit = new CategoryEditModal('editCategoryModal', 'editCategory_select', 'editCategoryClose');
|
||||
|
||||
const materialize = new MaterializeConfig();
|
||||
console.log('Control-Panel v1.0.0');
|
||||
console.log('Control-Panel v1.0.01');
|
||||
@ -1,4 +1,4 @@
|
||||
const axios = require('axios');
|
||||
import axios from "axios";
|
||||
|
||||
class ApiService {
|
||||
constructor(baseUrl) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
const axios = require('axios');
|
||||
import axios from "axios";
|
||||
|
||||
class ApiService {
|
||||
constructor(baseUrl) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user