Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const http = require('http');
- const https = require('https');
- var request = require('request');
- const fs = require('fs')
- var clients = {};
- var ResponseInstance;
- const { parse } = require('querystring');
- const port = 2003
- const host = '95.211.146.78'
- const options = {
- key: fs.readFileSync('/etc/apache2/ssl/instantbanking.maldopay.com.key'),
- cert: fs.readFileSync('/etc/apache2/ssl/instantbanking.maldopay.com.crt')
- };
- Array.prototype.in_array = function(p_val) {
- for(var i = 0, l = this.length; i < l; i++) {
- if(this[i] == p_val) {
- return true;
- }
- }
- return false;
- }
- var AvailableAmounts = {};
- // create server and start it
- const server = https.createServer(options).listen(2002);
- var loggedUser = {};
- var userIps = {};
- var userUseragents = {};
- async function makeApiCall(action, postData){
- var url = 'https://api.maldopay.com/V2/ceppayment/?token=938F1DEED127B28DD39439CD6327C&action='+action;
- //var url = 'http://94.156.232.18:11443/transaction/api/V2/ceppayment/?token=938F1DEED127B28DD39439CD6327C&action='+action;
- if(typeof(postData['sessionid']) != 'undefined'){
- postData['request_from_ip'] = userIps[postData['sessionid']];
- postData['useragent'] = userUseragents[postData['sessionid']];
- }
- //console.log("postData:" + JSON.stringify(postData));
- let promise = new Promise((resolve, reject) => {
- request.post({url:url, formData: postData}, function(err, httpResponse, body) {
- if (err) {
- return console.error('post failed:', err);
- }
- try {
- //console.log(body);
- body = JSON.parse(body);
- } catch (e) {
- body = {"success":false, "messages":{"errors":"Error connection"}};
- }
- resolve(body);
- });
- });
- let result = await promise;
- //console.log("RESULT:" + JSON.stringify(result));
- var sessionid = '';
- if(typeof(postData['sessionid']) != 'undefined'){
- sessionid = postData['sessionid'];
- }
- handleResult[action](result, sessionid);
- //return result;
- }
- var handleResult = {
- getUnfinishedTransactions : function(result, socket_id){
- AvailableAmounts = result;
- //console.log(AvailableAmounts);
- emitTransactionListToAllUsers();
- },
- userLogin : function(result, socket_id){
- //console.log(socket_id);
- //console.log(result);
- if(typeof(result.success) != 'undefined' && result.success){
- loggedUser[socket_id] = result.data;
- }
- io.to(socket_id).emit("logined",result);
- },
- kickUserFromTransaction : function(result, socket_id){
- io.to(socket_id).emit("kickedSuccessFromTransaction",result);
- if(typeof(result.success) != 'undefined' && result.success){
- io.to(result.data.kicked_user_session_id).emit("kickedFromTransaction",result);
- AvailableAmounts.data[result.data.type][result.data.id]['ceppayment_agent'] = '';
- emitTransactionListToAllUsers();
- }
- },
- kickPoolFromTransaction : function(result, socket_id){
- console.log('kickPoolFromTransaction');
- io.to(socket_id).emit("kickedSuccessFromTransaction",result);
- if(typeof(result.success) != 'undefined' && result.success){
- AvailableAmounts.data[result.data.type][result.data.id]['ceppayment_agent'] = '';
- emitTransactionListToAllUsers();
- }
- },
- takeTransaction : function(result, socket_id){
- io.to(socket_id).emit("takeTransaction",result);
- if(typeof(result.success) != 'undefined' && result.success){
- AvailableAmounts.data[result.data.type][result.data.id]['ceppayment_agent'] = loggedUser[socket_id].username;
- emitTransactionListToAllUsers();
- }
- },
- releaseTransaction : function(result, socket_id){
- io.to(socket_id).emit("releaseTransaction",result);
- if(typeof(result.success) != 'undefined' && result.success){
- AvailableAmounts.data[result.data.type][result.data.id]['ceppayment_agent'] = '';
- emitTransactionListToAllUsers();
- }
- },
- confirmTransaction : function(result, socket_id){
- io.to(socket_id).emit("confirmTransaction",result);
- if(typeof(result.success) != 'undefined' && result.success){
- delete AvailableAmounts.data[result.data.type][result.data.id];
- emitTransactionListToAllUsers();
- }
- },
- declineTransaction : function(result, socket_id){
- io.to(socket_id).emit("declineTransaction",result);
- if(typeof(result.success) != 'undefined' && result.success){
- delete AvailableAmounts.data[result.data.type][result.data.id];
- emitTransactionListToAllUsers();
- }
- },
- getTransactionsForReport : function(result, socket_id){
- //console.log('emit getTransactionsForReport');
- io.to(socket_id).emit("getTransactionsForReport",result);
- },
- getReportByAgents : function(result, socket_id){
- //console.log('emit getReportByAgents');
- io.to(socket_id).emit("getReportByAgents",result);
- },
- getTransactionHistory : function(result, socket_id){
- //console.log('emit getTransactionHistory');
- io.to(socket_id).emit("getTransactionHistory",result);
- },
- sendManualTransaction : function(result, socket_id){
- console.log('emit sendedManualTransaction');
- io.to(socket_id).emit("sendedManualTransaction",result);
- }
- }
- const httpServer = http.createServer(function(request, response) {
- var action = request.url.replace('/?','');
- if (request.method == 'POST') {
- var body = ''
- request.on('data', function(data) {
- body += data
- })
- request.on('end', function() {
- var POST = parse(body);
- //console.log(POST);
- ResponseInstance = response;
- //Response(POST);
- if(typeof(actionsForPostRequest[action]) != 'undefined'){
- actionsForPostRequest[action](POST);
- }
- })
- }
- })
- function Response(Response){
- ResponseInstance.writeHead(200, {'Content-Type': 'application/json'})
- resp = {};
- resp.response = Response;
- res = JSON.stringify(resp);
- ResponseInstance.end(res)
- }
- var actionsForPostRequest = {
- responce : {
- 'success':false,
- 'messages':[]
- },
- addTransaction : function(data){
- //console.log(data);
- this.responce.messages = [];
- ResponseInstance.writeHead(200, {'Content-Type': 'application/json'});
- if(typeof(data.type) == 'undefined' || typeof(data.transaction) == 'undefined'){
- this.responce.messages.push('required data missing');
- ResponseInstance.end(JSON.stringify(this.responce));
- return false;
- }
- data.transaction = JSON.parse(data.transaction);
- if(data.type == 'payins'){
- if(typeof(AvailableAmounts.data.payins[data.transaction.id]) != 'undefined'){
- this.responce.messages.push('required transaction type');
- ResponseInstance.end(JSON.stringify(this.responce));
- return false;
- }
- this.responce.success = true;
- AvailableAmounts.data.payins[data.transaction.id] = data.transaction;
- emitTransactionListToAllUsers();
- }
- if(data.type == 'payouts'){
- if(typeof(AvailableAmounts.data.payouts[data.transaction.id]) != 'undefined'){
- this.responce.messages.push('required transaction type');
- ResponseInstance.end(JSON.stringify(this.responce));
- return false;
- }
- this.responce.success = true;
- AvailableAmounts.data.payouts[data.transaction.id] = data.transaction;
- emitTransactionListToAllUsers();
- }
- ResponseInstance.end(JSON.stringify(this.responce));
- },
- updateTransaction : function(data){
- this.responce.messages = [];
- ResponseInstance.writeHead(200, {'Content-Type': 'application/json'});
- if(typeof(data.type) == 'undefined' || typeof(data.transaction) == 'undefined'){
- this.responce.messages.push('required data missing');
- ResponseInstance.end(JSON.stringify(this.responce));
- return false;
- }
- data.transaction = JSON.parse(data.transaction);
- if(data.type == 'payins'){
- if(typeof(AvailableAmounts.data.payins[data.transaction.id]) == 'undefined'){
- this.responce.messages.push('required transaction type');
- ResponseInstance.end(JSON.stringify(this.responce));
- return false;
- }
- this.responce.success = true;
- AvailableAmounts.data.payins[data.transaction.id] = data.transaction;
- emitTransactionListToAllUsers();
- }
- if(data.type == 'payouts'){
- if(typeof(AvailableAmounts.data.payouts[data.transaction.id]) == 'undefined'){
- this.responce.messages.push('required transaction type');
- ResponseInstance.end(JSON.stringify(this.responce));
- return false;
- }
- this.responce.success = true;
- AvailableAmounts.data.payouts[data.transaction.id] = data.transaction;
- emitTransactionListToAllUsers();
- }
- ResponseInstance.end(JSON.stringify(this.responce));
- },
- removeTransaction : function(data){
- this.responce.messages = [];
- if(typeof(data.type) == 'undefined' || typeof(data.transaction_id) == 'undefined'){
- this.responce.messages.push('required data missing');
- ResponseInstance.end(JSON.stringify(this.responce));
- return false;
- }
- if(data.type == 'payins'){
- if(typeof(AvailableAmounts.data.payins[data.transaction_id]) != 'undefined'){
- delete AvailableAmounts.data.payins[data.transaction_id];
- emitTransactionListToAllUsers();
- }
- this.responce.success = true;
- }
- if(data.type == 'payouts'){
- if(typeof(AvailableAmounts.data.payouts[data.transaction_id]) != 'undefined'){
- delete AvailableAmounts.data.payouts[data.transaction_id];
- emitTransactionListToAllUsers();
- }
- this.responce.success = true;
- }
- ResponseInstance.end(JSON.stringify(this.responce));
- },
- reloadTransactionsFromServer : function(data){
- this.responce.messages = [];
- makeApiCall('getUnfinishedTransactions', {});
- ResponseInstance.writeHead(200, {'Content-Type': 'application/json'});
- ResponseInstance.end(JSON.stringify(this.responce));
- }
- }
- httpServer.listen(port, host)
- console.log(`Listening at http://${host}:${port}`)
- setTimeout(function(){
- //console.log("Requesting Amounts");
- makeApiCall('getUnfinishedTransactions', {});
- }, 1000);
- var io = require('socket.io')(server);
- var clients = io.sockets.clients();
- io.on('connection', function (socket) {
- //console.log(socket.handshake);
- var address = socket.handshake.address;
- userIps[socket.id] = address;
- var useragent = socket.handshake.headers['user-agent'];
- userUseragents[socket.id] = useragent;
- //console.log("CONNECTED: " + socket.id);
- socket.on('message', function (msg) {
- //console.log("MESSAGE: " + msg);
- });
- socket.on('transactionId', function (msg) {
- //console.log("Transaction ID IS: " + msg);
- });
- socket.on('requestAmounts', function(){
- var transactions = getUnfinishedTransactionsForUser(loggedUser[socket.id]);
- io.to(socket.id).emit("updateTransactions", transactions);
- });
- socket.on('disconnect', function (da) {
- delete loggedUser[socket.id];
- delete userIps[socket.id];
- delete userUseragents[socket.id];
- //console.log("DISCONNECTED: " + socket.id);
- });
- socket.on('login', function (data) {
- //console.log("login: " + socket.id);
- //console.log("data!: " + JSON.stringify(data));
- data['sessionid'] = socket.id;
- makeApiCall('userLogin', data);
- });
- socket.on('kickUserFromTransaction', function (data) {
- //console.log("kickUser from transaction: " + data.transaction_id);
- makeApiCall('kickUserFromTransaction', {type:data.type, transaction_id:data.transaction_id, sessionid:socket.id});
- });
- socket.on('kickPoolFromTransaction', function (data) {
- console.log("kickPool from transaction: " + data.transaction_id);
- makeApiCall('kickPoolFromTransaction', {type:data.type, transaction_id:data.transaction_id, sessionid:socket.id});
- });
- socket.on('takeTransaction', function (data) {
- //console.log("takeTransaction: " + data.transaction_id);
- makeApiCall('takeTransaction', {type:data.type, transaction_id:data.transaction_id, sessionid:socket.id});
- });
- socket.on('releaseTransaction', function (data) {
- //console.log("releaseTransaction: " + data.transaction_id);
- makeApiCall('releaseTransaction', {type:data.type, transaction_id:data.transaction_id, sessionid:socket.id});
- });
- socket.on('confirmTransaction', function (data) {
- //console.log("confirmTransaction");
- data.sessionid = socket.id;
- makeApiCall('confirmTransaction', data);
- });
- socket.on('declineTransaction', function (data) {
- //console.log("declineTransaction");
- data.sessionid = socket.id;
- makeApiCall('declineTransaction', data);
- });
- socket.on('getTransactionsForReport', function (data) {
- //console.log("getTransactionsForReport");
- data.sessionid = socket.id;
- makeApiCall('getTransactionsForReport', data);
- });
- socket.on('getReportByAgents', function (data) {
- //console.log("getReportByAgents");
- data.sessionid = socket.id;
- makeApiCall('getReportByAgents', data);
- });
- socket.on('getTransactionHistory', function (data) {
- //console.log("getTransactionHistory");
- data.sessionid = socket.id;
- makeApiCall('getTransactionHistory', data);
- });
- socket.on('sendManualTransaction', function (data) {
- console.log("sendManualTransaction");
- data.sessionid = socket.id;
- makeApiCall('sendManualTransaction', data);
- });
- });
- var typesData = {
- 'payins':{
- 'agentUsernameField':'ceppayment_agent'
- },
- 'qrs':{
- 'agentUsernameField':'agent'
- },
- 'refs':{
- 'agentUsernameField':'agent'
- },
- 'planetspayqrs':{
- 'agentUsernameField':'agent'
- },
- 'payouts':{
- 'agentUsernameField':'ceppayment_agent'
- }
- }
- var getUnfinishedTransactionsForUser = function(user){
- //console.log(user);
- if(typeof(AvailableAmounts.data) != 'undefined' && AvailableAmounts.data){
- var t = {};
- for(var type in AvailableAmounts.data){
- t[type] = {};
- if((type == 'payins' && !user.allowed_payment_type.in_array('payins')) || (type == 'payouts' && !user.allowed_payment_type.in_array('payouts'))){
- t[type] = {};
- }else{
- if(!user.tags.in_array('view_all_transactions')){
- //console.log(type);
- //console.log(t[type]);
- var newTransactions = {};
- for(var i in AvailableAmounts.data[type]){
- var transaction = AvailableAmounts.data[type][i];
- var ceppayment_agent = transaction.ceppayment_agent;
- if((ceppayment_agent == '' || user.allowed_users.in_array(ceppayment_agent) || user.username == ceppayment_agent) && (user.allowed_brands.in_array(transaction.brandId))){
- if(type == 'payouts'){
- if(!user.tags.in_array('show_100_1000_try_payouts') && transaction.amount < 1000){
- continue;
- }
- }
- newTransactions[transaction.id] = transaction;
- }
- }
- //console.log(newTransactions);
- t[type] = newTransactions;
- }else{
- t[type] = AvailableAmounts.data[type];
- }
- }
- }
- var s = {};
- if(user.tags.in_array('kick_agent_button')){
- s.kick_agent_button = true;
- }
- if(user.tags.in_array('kick_pool_button')){
- s.kick_pool_button = true;
- }
- s.data = t;
- s.success = true;
- return s;
- }else{
- return AvailableAmounts;
- }
- }
- var emitTransactionListToAllUsers = function(){
- Object.keys(clients.sockets).forEach(function(client) {
- if(typeof(loggedUser[client]) != 'undefined'){
- //console.log(AvailableAmounts);
- var transactions = getUnfinishedTransactionsForUser(loggedUser[client]);
- //console.log(transactions);
- //console.log(AvailableAmounts);
- io.to(client).emit("updateTransactions",transactions);
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement