· 5 years ago · Mar 21, 2020, 10:28 AM
1 const { stringify } = require('querystring');
2 let md5 = require('js-md5');
3
4
5
6 const express = require('express');
7 const app = express();
8 app.get("/payment", async function(req, res) {
9 res.send("home");
10
11
12
13 a = {
14 pay_id: req.query.pay_id,
15 amount: req.query.amount,
16 val: req.query.currency ? 'нет параметра' : req.query.currency,
17 id: req.query.field1,
18 desc: req.query.field2
19 }
20 let user = await User.findOne({
21 uid: Number(id)
22 });
23 let sendx = user.id
24 if(a.amount >= 1 && a.desc == 'currency') {
25 bot.sendMessage(sendx,'Спасибо за покупку товара 1')
26 user.set("phone", 1);
27 } else if(a.amount >= 50 && a.desc == 'vip') {
28 bot.sendMessage(sendx,'Спасибо за покупку товара 2')
29 user.set("phone", 2);
30 } else if(a.amount == 'null' || a.desc == 'null') {
31 bot.sendMessage(sendx,'Ошибка оплаты товара!')
32 bot.sendMessage(460551433,'Ошибка оплаты')
33 } else if(a.amount == 50 && a.desc == 'health') {
34 bot.sendMessage(sendx,'Спасибо за покупку товара 2')
35 user.set("phone", 3);
36 }
37
38 console.log(JSON.stringify(a, null, "\t"))
39 res.send(JSON.stringify(a, null, "\t"))
40
41 })
42
43 app.listen(8085);
44 bot.onText(/\вип$/i, async (msg, match) => {
45
46 var fromId = msg.from.id
47 let user = await User.findOne({
48 id: fromId
49 })
50 let don_vip = donateLink({
51 amount: 50,
52 field1: fromId,
53 field2: 'vip',
54 id: 2
55 });
56
57 bot.sendMessage(fromId,`? Ссылка для покупки товара VIP : ${don_vip}\n? Стоимость товара: 50 RUB`)
58 });
59
60
61 function donateLink(options) {
62 const url = `https://any-pay.org/merchant?`;
63
64 let payId = options.id;
65 let Field1 = options.field1;
66 let Field2 = options.field2;
67 let secretKey = 'kMsRrItHxZihKhBDNo9QEO40kl';
68 let currency = 'RUB';
69 let merchId = 5347;
70
71 let sign = md5(`${currency}:${options.amount}:${secretKey}:${merchId}:${payId}`);
72
73 const params = stringify({
74 merchant_id: merchId,
75 pay_id: payId,
76 currency: currency,
77 field1: Field1,
78 field2: Field2,
79 ...options,
80 sign
81 });
82
83 return url + params;
84 }