@opengis/pay 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengis/pay",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "pay plugins for billing",
|
|
6
6
|
"main": "plugin.js",
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
14
|
"docs:dev": "vitepress dev docs",
|
|
15
|
+
"docs:build": "vitepress build docs",
|
|
16
|
+
"docs:preview": "vitepress preview docs",
|
|
15
17
|
"test": "node --test test/**/*.test.js",
|
|
16
18
|
"start": "node --watch-path=server server",
|
|
17
19
|
"admin": "cross-env NODE_ENV=admin npm run start",
|
|
@@ -30,7 +30,7 @@ export default async function PortmoneRedirect(req, reply) {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
const { host, payeeId } = config.integrations?.pay || {};
|
|
33
|
-
const domain = `${req.protocol}://${req.hostname}`;
|
|
33
|
+
const domain = `${req.protocol}://${req.hostname.split(':').shift()}`;
|
|
34
34
|
|
|
35
35
|
if (!host) {
|
|
36
36
|
return { message: 'empty integration host', status: 400 };
|
|
@@ -62,7 +62,9 @@ export default async function PortmoneRedirect(req, reply) {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
if (!headers?.referer || !headers.referer.includes(domain)) {
|
|
65
|
-
logger.file('payments/warn', {
|
|
65
|
+
logger.file('payments/warn', {
|
|
66
|
+
message: 'invalid referer', domain, referer: headers?.referer, uid: user.uid,
|
|
67
|
+
});
|
|
66
68
|
return { message: 'access restricted', status: 403 };
|
|
67
69
|
}
|
|
68
70
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
config, logger, pgClients,
|
|
2
|
+
config, logger, pgClients, dataUpdate, getTemplate,
|
|
3
3
|
} from '@opengis/fastify-table/utils.js';
|
|
4
4
|
|
|
5
5
|
import { sendNotification } from '@opengis/admin/utils.js';
|
|
@@ -23,13 +23,8 @@ import { sendNotification } from '@opengis/admin/utils.js';
|
|
|
23
23
|
|
|
24
24
|
export default async function portmoneStatus(req, reply) {
|
|
25
25
|
const {
|
|
26
|
-
pg = pgClients.client, params = {}, headers = {}, body = {}, user,
|
|
26
|
+
pg = pgClients.client, params = {}, headers = {}, body = {}, user = {},
|
|
27
27
|
} = req;
|
|
28
|
-
|
|
29
|
-
if (!user?.uid) {
|
|
30
|
-
return { message: 'access restricted', status: 403 };
|
|
31
|
-
}
|
|
32
|
-
|
|
33
28
|
const { host } = config.integrations?.pay || {};
|
|
34
29
|
|
|
35
30
|
if (!host) {
|
|
@@ -53,8 +48,12 @@ export default async function portmoneStatus(req, reply) {
|
|
|
53
48
|
} = data;
|
|
54
49
|
|
|
55
50
|
if (trxStatus === 'success') {
|
|
56
|
-
logger.file('
|
|
57
|
-
|
|
51
|
+
logger.file('payments/skip', {
|
|
52
|
+
type: 'status',
|
|
53
|
+
paymentId,
|
|
54
|
+
origin,
|
|
55
|
+
uid: user.uid,
|
|
56
|
+
message: 'Transaction was already processed',
|
|
58
57
|
});
|
|
59
58
|
return { message: 'Transaction was already processed', status: 400 };
|
|
60
59
|
}
|
|
@@ -69,6 +68,7 @@ export default async function portmoneStatus(req, reply) {
|
|
|
69
68
|
if (!config.debug && !origin?.startsWith(host)) {
|
|
70
69
|
logger.file('payments/warn', {
|
|
71
70
|
type: 'status',
|
|
71
|
+
paymentId,
|
|
72
72
|
origin,
|
|
73
73
|
uid: user.uid,
|
|
74
74
|
refill,
|
|
@@ -79,6 +79,7 @@ export default async function portmoneStatus(req, reply) {
|
|
|
79
79
|
|
|
80
80
|
logger.file('payments', {
|
|
81
81
|
type: 'status',
|
|
82
|
+
paymentId,
|
|
82
83
|
origin,
|
|
83
84
|
uid: user.uid,
|
|
84
85
|
refill,
|
|
@@ -108,20 +109,17 @@ export default async function portmoneStatus(req, reply) {
|
|
|
108
109
|
|
|
109
110
|
logger.file('payments', {
|
|
110
111
|
type: 'status',
|
|
112
|
+
paymentId,
|
|
113
|
+
responseStatus,
|
|
111
114
|
to,
|
|
115
|
+
origin,
|
|
112
116
|
redirect: redirectUrl,
|
|
113
|
-
paymentId,
|
|
114
117
|
uid: user.uid,
|
|
115
118
|
});
|
|
116
119
|
|
|
117
|
-
const cls2 = await getSelectVal({ pg, name: 'billing.account_id', values: [accountId] });
|
|
118
|
-
const cls3 = await getSelectVal({ pg, name: 'billing.payment_status', values: [trxStatus] });
|
|
119
|
-
|
|
120
120
|
Object.assign(data, {
|
|
121
121
|
domain: req.hostname,
|
|
122
122
|
total_balance: +(refill || 0) + (+totalBalance || 0),
|
|
123
|
-
account_id_text: accountId ? cls2?.[accountId] || accountId : 'Інформація відсутня',
|
|
124
|
-
payment_status_text: trxStatus ? cls3?.[trxStatus] || trxStatus : 'Інформація відсутня',
|
|
125
123
|
});
|
|
126
124
|
|
|
127
125
|
if (to) {
|
|
@@ -136,23 +134,16 @@ export default async function portmoneStatus(req, reply) {
|
|
|
136
134
|
};
|
|
137
135
|
await sendNotification(options);
|
|
138
136
|
}
|
|
139
|
-
logger.file('payments', {
|
|
140
|
-
type: 'status',
|
|
141
|
-
to,
|
|
142
|
-
redirect: redirectUrl,
|
|
143
|
-
paymentId,
|
|
144
|
-
responseStatus,
|
|
145
|
-
uid: user.uid,
|
|
146
|
-
});
|
|
147
137
|
return reply.redirect(redirectUrl || '/');
|
|
148
138
|
}
|
|
149
139
|
catch (err) {
|
|
150
140
|
logger.file('payments/error', {
|
|
151
141
|
type: 'status',
|
|
152
|
-
error: err.toString(),
|
|
153
|
-
uid: user.uid,
|
|
154
142
|
paymentId,
|
|
143
|
+
origin,
|
|
155
144
|
responseStatus,
|
|
145
|
+
uid: user.uid,
|
|
146
|
+
error: err.toString(),
|
|
156
147
|
});
|
|
157
148
|
return { error: err.toString(), status: 500 };
|
|
158
149
|
}
|