mirror of
https://gitee.com/technical-laohu/mpay.git
synced 2025-11-07 03:03:43 +08:00
更新后端查询收银平台订单明细功能
This commit is contained in:
112
public/static/js/helper.js
Normal file
112
public/static/js/helper.js
Normal file
@@ -0,0 +1,112 @@
|
||||
// 插件配置
|
||||
const plugins = [
|
||||
{
|
||||
name: '收钱吧',
|
||||
host: 'web-platforms-msp.shouqianba.com',
|
||||
method: 'POST',
|
||||
orderQuery: '/api/transaction/findTransactions',
|
||||
channelKey: 'terminal_device_fingerprint',
|
||||
moneyKey: 'original_amount',
|
||||
listPath: 'data.records'
|
||||
}
|
||||
];
|
||||
|
||||
// 登陆配置
|
||||
const logins = [
|
||||
{
|
||||
name: '新商城',
|
||||
host: 'localhost',
|
||||
method: 'GET',
|
||||
orderQuery: '/api/Order/getOrders',
|
||||
accPath: 'order_id',
|
||||
pswPath: 'money',
|
||||
}
|
||||
];
|
||||
|
||||
// 提取订单信息
|
||||
function extractOrderInfo(response, plugins) {
|
||||
plugins.forEach((plugin) => {
|
||||
const urlObj = new URL(response.url);
|
||||
if (plugin.host === urlObj.hostname
|
||||
&& plugin.orderQuery === urlObj.pathname
|
||||
&& plugin.method === response.method) {
|
||||
const jsonDatas = JSON.parse(response.response);
|
||||
const orderDatas = eval(`jsonDatas.${plugin.listPath}`);
|
||||
let lists = [];
|
||||
orderDatas.forEach((orderData) => {
|
||||
const data = {
|
||||
'终端编号': orderData[plugin.channelKey],
|
||||
'订单金额': orderData[plugin.moneyKey]
|
||||
};
|
||||
lists.push(data);
|
||||
})
|
||||
console.log(plugin.name);
|
||||
console.table(lists);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 提取登陆信息
|
||||
function extractLoginInfo(request, logins) {
|
||||
logins.forEach((login) => {
|
||||
const urlObj = new URL(request.url);
|
||||
if (login.host === urlObj.hostname
|
||||
&& login.orderQuery === urlObj.pathname
|
||||
&& login.method === request.method) {
|
||||
const jsonData = JSON.parse(request.request);
|
||||
const acc = eval(`jsonData.${login.accPath}`);
|
||||
const psw = eval(`jsonData.${login.pswPath}`);
|
||||
const data = {
|
||||
'账号': acc,
|
||||
'密码': psw
|
||||
};
|
||||
console.log(login.name);
|
||||
console.table(data);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// XHR 重写
|
||||
var oldOpen = XMLHttpRequest.prototype.open;
|
||||
var oldSend = XMLHttpRequest.prototype.send;
|
||||
XMLHttpRequest.prototype.open = function (method, url) {
|
||||
this._url = url;
|
||||
this._method = method;
|
||||
const res = {
|
||||
url: this.responseURL,
|
||||
method: this._method,
|
||||
response: this._body
|
||||
}
|
||||
extractLoginInfo(res, logins);
|
||||
return oldOpen.apply(this, arguments);
|
||||
};
|
||||
XMLHttpRequest.prototype.send = function (body) {
|
||||
this._body = body;
|
||||
this.addEventListener('load', function () {
|
||||
const res = {
|
||||
url: this.responseURL,
|
||||
method: this._method,
|
||||
response: this.responseText
|
||||
}
|
||||
console.log(res);
|
||||
|
||||
extractOrderInfo(res, plugins);
|
||||
});
|
||||
return oldSend.apply(this, arguments);
|
||||
};
|
||||
|
||||
// fetch 重写
|
||||
window.au_fetch = window.fetch;
|
||||
window.fetch = function (url, options) {
|
||||
// console.log('Fetch URL:', url);
|
||||
// console.log('Fetch Options:', options);
|
||||
return window.au_fetch.apply(window, [url, options]).then((response) => {
|
||||
const res = {
|
||||
url: url,
|
||||
method: options.method,
|
||||
response: response.text()
|
||||
}
|
||||
extractOrderInfo(res, plugins);
|
||||
return response;
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user