diff --git a/src/server/admin/twoFAMail.html b/src/server/admin/twoFAMail.html
index ed91688..b978986 100644
--- a/src/server/admin/twoFAMail.html
+++ b/src/server/admin/twoFAMail.html
@@ -62,7 +62,7 @@
Welcome back!
-
It looks like someone is trying to sign in to your admin account at {{ pageName }}. If it was you, please click the button below to confirm the login. If not, please change your password immediately or have it changed by the root account!
+
It looks like someone is trying to sign in to your admin account at {{ pageName }}. If it was you, please click the button below to confirm the login. If not, please change your password immediately or have it changed by the root account!
Logging in from IP {{ ip }}.
Verify
diff --git a/src/server/backend/plugins/payments/payrexx/payrexxRoutes.js b/src/server/backend/plugins/payments/payrexx/payrexxRoutes.js
index 502734b..b956c00 100644
--- a/src/server/backend/plugins/payments/payrexx/payrexxRoutes.js
+++ b/src/server/backend/plugins/payments/payrexx/payrexxRoutes.js
@@ -161,7 +161,7 @@ module.exports = ( app, settings ) => {
}, 1000 );
db.getDataSimple( 'processingOrders', 'user_id', sessionReference[ response.data.data[ 0 ].id ][ 'tok' ] ).then( dat => {
db.getDataSimple( 'users', 'email', sessionReference[ response.data.data[ 0 ].id ][ 'email' ] ).then( user => {
- if ( user[ 0 ] ) {
+ if ( user[ 0 ] && dat[ 0 ] ) {
const tickets = JSON.parse( dat[ 0 ].data );
db.writeDataSimple( 'orders', 'account_id', user[ 0 ].account_id, { 'account_id': user[ 0 ].account_id, 'tickets': dat[ 0 ].data, 'order_name': sessionReference[ response.data.data[ 0 ].id ][ 'tok' ] } ).then( () => {
console.log( sessionReference[ response.data.data[ 0 ].id ][ 'tok' ] );
@@ -193,8 +193,7 @@ module.exports = ( app, settings ) => {
} );
} );
} else {
- console.log( sessionReference[ response.data.data[ 0 ].id ][ 'email' ] );
- console.error( 'user not found' );
+ TicketGenerator.sendErrorMail( sessionReference[ response.data.data[ 0 ].id ][ 'tok' ], sessionReference[ response.data.data[ 0 ].id ][ 'email' ] );
}
} );
} ).catch( err => {
diff --git a/src/server/backend/plugins/payments/stripe/stripeRoutes.js b/src/server/backend/plugins/payments/stripe/stripeRoutes.js
index ead47fe..2e8e232 100644
--- a/src/server/backend/plugins/payments/stripe/stripeRoutes.js
+++ b/src/server/backend/plugins/payments/stripe/stripeRoutes.js
@@ -163,7 +163,7 @@ module.exports = ( app, settings ) => {
}, 1000 );
db.getDataSimple( 'processingOrders', 'user_id', sessionReference[ event.data.object.id ][ 'tok' ] ).then( dat => {
db.getDataSimple( 'users', 'email', sessionReference[ event.data.object.id ][ 'email' ] ).then( user => {
- if ( user[ 0 ] ) {
+ if ( user[ 0 ] && dat[ 0 ] ) {
const tickets = JSON.parse( dat[ 0 ].data );
db.writeDataSimple( 'orders', 'account_id', user[ 0 ].account_id, { 'account_id': user[ 0 ].account_id, 'tickets': dat[ 0 ].data, 'order_name': sessionReference[ event.data.object.id ][ 'tok' ] } ).then( () => {
TicketGenerator.generateTickets( sessionReference[ event.data.object.id ] );
@@ -193,7 +193,7 @@ module.exports = ( app, settings ) => {
} );
} );
} else {
- console.error( 'user not found' );
+ TicketGenerator.sendErrorMail( sessionReference[ event.data.object.id ][ 'tok' ], sessionReference[ event.data.object.id ][ 'email' ] );
}
} );
} ).catch( err => {
diff --git a/src/server/backend/tickets/ticketGenerator.js b/src/server/backend/tickets/ticketGenerator.js
index 06bdfae..4a9a1de 100644
--- a/src/server/backend/tickets/ticketGenerator.js
+++ b/src/server/backend/tickets/ticketGenerator.js
@@ -46,6 +46,37 @@ class TicketGenerator {
} );
}
+ sendErrorMail( order, email ) {
+ db.getJSONData( 'rootAccount' ).then( res => {
+ ( async() => {
+ const app = createSSRApp( {
+ data() {
+ return {
+ host: settings.yourDomain,
+ pageName: settings.name,
+ };
+ },
+ template: '' + fs.readFileSync( path.join( __dirname + '/../../ui/en/payments/failedToProcessMail.html' ) )
+ } );
+
+ mailManager.sendMail( email, await renderToString( app ), 'Your order failed to process', settings.mailSender );
+
+ const adminNot = createSSRApp( {
+ data() {
+ return {
+ host: settings.yourDomain,
+ email: email,
+ order_id: order,
+ };
+ },
+ template: '' + fs.readFileSync( path.join( __dirname + '/../../ui/en/payments/failedToProcessDetailsMail.html' ) )
+ } );
+
+ mailManager.sendMail( res.email, await renderToString( adminNot ), 'Your order failed to process', settings.mailSender );
+ } )();
+ } );
+ }
+
generateTickets ( order ) {
this.ticketQueue[ this.jobId ] = { 'order': order };
this.runningTickets[ order.tok ] = 'processing';
diff --git a/src/server/ui/en/payments/failedToProcessDetailsMail.html b/src/server/ui/en/payments/failedToProcessDetailsMail.html
new file mode 100644
index 0000000..b936a1b
--- /dev/null
+++ b/src/server/ui/en/payments/failedToProcessDetailsMail.html
@@ -0,0 +1,69 @@
+
+
+
+
+
![Logo]()
+
There was an error whilst processing an order
+
This order will have to be processed manually!
+
{{ order_id }}
+
{{ email }}
+
+
+
\ No newline at end of file
diff --git a/src/server/ui/en/payments/failedToProcessMail.html b/src/server/ui/en/payments/failedToProcessMail.html
new file mode 100644
index 0000000..df05d31
--- /dev/null
+++ b/src/server/ui/en/payments/failedToProcessMail.html
@@ -0,0 +1,67 @@
+
+
+
+
+
![Logo]()
+
There was an error whilst processing your order at {{ pageName }}
+
Your tickets will have to be processed manually and you will receive them as soon as they are ready.
+
+
+
\ No newline at end of file