Commit 97e9fd9a authored by 18224442217's avatar 18224442217

加密

parent 56233e2f
<template>
<div class="auth-page">
<div class="auth-page" v-if="false">
<u-popup v-model="showDialog" mode="center" :mask-close-able="false" custom-style="padding:0;background:none;">
<img :src="pageinfo.pic_url" mode="widthFix" />
<!-- #ifdef MP-WEIXIN -->
......@@ -17,6 +17,7 @@
<script>
import coupon from "@/components/coupons/coupons";
export default {
components: {
coupon,
......@@ -36,18 +37,19 @@
};
},
created() {
this.pageinfo = uni.getStorageSync("basedata") ?
uni.getStorageSync("basedata").auth_page : {};
if (wx.getUserProfile) {
this.canIUseGetUserProfile = true;
}
// #ifdef MP-ALIPAY
this.canIUseGetUserProfile = true;
// #endif
let x = this.pageinfo.hotspot;
let y = this.pageinfo.hotspot_cancel;
this.sureStyle = `height:${x.height}rpx;width:${x.width}rpx;left:${x.left}rpx;top:${x.top}rpx;`;
this.cancelStyle = `height:${y.height}rpx;width:${y.width}rpx;left:${y.left}rpx;top:${y.top}rpx;`;
// this.pageinfo = uni.getStorageSync("basedata") ?
// uni.getStorageSync("basedata").auth_page : {};
// if (wx.getUserProfile) {
// this.canIUseGetUserProfile = true;
// }
// // #ifdef MP-ALIPAY
// this.canIUseGetUserProfile = true;
// // #endif
// let x = this.pageinfo.hotspot;
// let y = this.pageinfo.hotspot_cancel;
// this.sureStyle = `height:${x.height}rpx;width:${x.width}rpx;left:${x.left}rpx;top:${x.top}rpx;`;
// this.cancelStyle = `height:${y.height}rpx;width:${y.width}rpx;left:${y.left}rpx;top:${y.top}rpx;`;
this.getUserInfo()
},
methods: {
getoldUser() {
......@@ -94,44 +96,66 @@
},
});
},
getUserInfo(info) {
getUserInfo() {
var that = this;
that.showDialog = true;
uni.getProvider({
service: "oauth",
success: function(res) {
if (~res.provider.indexOf("weixin")) {
uni.login({
provider: "weixin",
success: (res) => {
//这里请求接口
let obj = {
Source: 1,
OpenId: "",
Name: info.userInfo.nickName,
Photo: info.userInfo.avatarUrl,
Gender: info.userInfo.gender,
Moblie: "",
SuperiorId: 0,
code: res.code,
};
that.getCode(obj);
},
fail: () => {
uni.showToast({
title: "微信登录授权失败",
icon: "none",
});
},
});
} else {
uni.showToast({
title: "请先安装微信或升级版本",
icon: "none",
});
}
wx.login({
success: (res) => {
//console.log(res)
let obj = {
Source: 1,
OpenId: "",
Name: '微信小程序用户',
Photo: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1695262844000_280.png',
Gender: 0,
Moblie: "",
SuperiorId: 0,
code: res.code,
};
that.getCode(obj);
},
});
fail() {
that.showDialog=false
uni.showToast({
title:'微信登录失败'
})
}
})
// uni.getProvider({
// service: "oauth",
// success: function(res) {
// if (~res.provider.indexOf("weixin")) {
// uni.login({
// provider: "weixin",
// success: (res) => {
// //这里请求接口
// let obj = {
// Source: 1,
// OpenId: "",
// Name: info.userInfo.nickName,
// Photo: info.userInfo.avatarUrl,
// Gender: info.userInfo.gender,
// Moblie: "",
// SuperiorId: 0,
// code: res.code,
// };
// that.getCode(obj);
// },
// fail: () => {
// uni.showToast({
// title: "微信登录授权失败",
// icon: "none",
// });
// },
// });
// } else {
// uni.showToast({
// title: "请先安装微信或升级版本",
// icon: "none",
// });
// }
// },
// });
},
close() {
this.showDialog = false;
......
......@@ -69,9 +69,9 @@
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid" : "wx5564525562e92ddb",
"appid" : "wxcf0727a7c78b501e",
"setting" : {
"urlCheck" : false,
"urlCheck" : true,
"minified" : false
},
"usingComponents" : true,
......
import Md5 from "js-md5"
export default {
install(Vue, options) {
Vue.prototype.host = "https://wx.weibaoge.cn/web/index.php?_mall_id=1285"
Vue.prototype.host2 = "http://192.168.10.226:5004"
Vue.prototype.host3 = "http://192.168.10.226"
Vue.prototype.host2 = "https://erpmallapi.oytour.com"
Vue.prototype.host3 = "https://reborn.oytour.com"
Vue.prototype.request = function(param, success, failed) {
//网络请求
uni.request({
url: this.host + "&r=" + param.data.r,
method: param.method || "GET",
header: param.header || {
'content-type': "application/json"
},
data: param.data,
success: res => {
if (res.data.code != 0 && res.data.msg != "商品未上架") {}
typeof success == "function" && success(res.data);
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
});
}
Vue.prototype.request2 = function(param, success, failed) {
//网络请求
uni.request({
url: this.host2 + param.url,
method: param.method || "Post",
header: param.header || {
'content-type': "application/json"
},
data: {
MallBaseId: this.GetMiniAppId().MallBaseId,
TenantId: this.GetMiniAppId().TenantId,
OpenId: this.GetOpenId().OpenId,
UserId: this.GetOpenId().UserId,
SmallShopsId: this.GetOpenId().SmallShopsId,
MiniAppId: this.GetMiniAppId().AppId,
msg: param.data,
token: this.GetOpenId().token
},
success: res => {
if (res.data.resultCode == 10000) {
let u = uni.getStorageSync("mall_UserInfo");
if (u) {
this.getLogin_t(u)
typeof failed == "function" && failed(res.data);
}
} else if (res.data.resultCode != 1) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
});
}
//请求app接口
Vue.prototype.apipost = function(cmd, msg, success, failed) {
var postData = this.GetPostData(cmd, msg, "");
uni.request({
url: this.host3 + '/api/common/post',
method: "Post",
header: {
'Content-Type': 'application/json'
},
data: postData,
success: res => {
if (res.data.resultCode == 10000 || res.data.resultCode == 10001) {
uni.removeStorageSync('b2b_user')
uni.removeStorageSync('mall_UserInfo')
// uni.redirectTo({
// url: '/pages/jiuzhai/login'
// })
uni.redirectTo({
url: '/pages/index/index'
})
} else if (res.data.resultCode != 1) {
if (!failed) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
})
},
Vue.prototype.javaApipost = function(cmd, msg, success, failed) {
let b2bUser = uni.getStorageSync('b2b_user')
let token = "";
let key = "";
let groupId = 0
let timestamp = (new Date()).valueOf();
var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase();
if (b2bUser && b2bUser.token) {
token = b2bUser.token;
key = b2bUser.secretKey;
groupId = b2bUser.groupId;
}
var md5Str = Md5(`msg=${encodeMsg}&timestamp=${timestamp}&token=${token}&key=${key}`);
var postData = {
"groupId": groupId,
"msg": msg,
"timestamp": timestamp,
"token": token,
"sign": md5Str,
}
uni.request({
url: 'https://efficient.oytour.com/api/' + cmd,
method: "Post",
header: {
'Content-Type': 'application/json'
},
data: postData,
success: res => {
if (res.data.resultCode == 10000 || res.data.resultCode == 10001) {
uni.removeStorageSync('b2b_user')
uni.removeStorageSync('mall_UserInfo')
// uni.redirectTo({
// url: '/pages/jiuzhai/login'
// })
uni.redirectTo({
url: '/pages/index/index'
})
} else if (res.data.resultCode != 1) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
})
},
Vue.prototype.apipostDownload = function(cmd, msg, success, failed) {
var postData = this.GetPostData(cmd, msg, "");
uni.request({
url: this.host3 + '/api/file/' + cmd,
method: "Post",
header: {
'Content-Type': 'application/json'
},
data: postData,
success: res => {
if (res.data.resultCode == 10000) {
let u = uni.getStorageSync("mall_UserInfo");
if (u) {
this.getLogin_t(u)
typeof failed == "function" && failed(res.data);
}
} else if (res.data.resultCode != 1) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
})
},
//获取请求参数
Vue.prototype.GetPostData = function(cmd, msg) {
if (msg == null || msg == "") {
msg = {}
}
let b2bUser = uni.getStorageSync('b2b_user')
let token = ''
let key = ""
let groupId = ''
let timestamp = (new Date()).valueOf();
if (b2bUser && b2bUser.token) {
token = b2bUser.token
key = b2bUser.secretKey
}
if (b2bUser) {
groupId = b2bUser.groupId
}
var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase();
var postData = {
"groupId": groupId,
"msg": msg,
"cmd": cmd,
"timestamp": timestamp,
"token": token,
"sign": '',
"locale": 'zh_CN',
"currencyCode": 'CNY',
version: 'MiniProgram'
}
return postData
},
// token失效再次登录接口
Vue.prototype.getLogin_t = function(obj) {
console.log('apijs', obj)
let pid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
let Up = uni.getStorageSync("Up") ? uni.getStorageSync("Up").Up : 0;
let SmallShopId = uni.getStorageSync("SmallShopId") ? uni.getStorageSync("SmallShopId").SmallShopId : 0;
let CounponPassword = uni.getStorageSync("CounponPassword") ? uni.getStorageSync("CounponPassword").CounponPassword :
0;
let KeyWord = uni.getStorageSync("KeyWord") ? uni.getStorageSync("KeyWord").KeyWord : '';
this.request2({
url: '/api/AppletLogin/Login',
data: {
Source: obj.Source,
OpenId: obj.OpenId,
Name: obj.Name,
Photo: obj.Photo,
Moblie: '',
SuperiorId: pid,
SmallShopId: SmallShopId,
UserPageType: Up,
CounponPassword: CounponPassword,
KeyWord: KeyWord,
}
},
res => {
if (res.resultCode == 1) {
uni.setStorageSync('mall_UserInfo', res.data);
uni.removeStorageSync('pid');
uni.removeStorageSync('SmallShopId');
uni.removeStorageSync("Up");
uni.removeStorageSync("CounponPassword");
uni.removeStorageSync("KeyWord");
}
}
);
}
// 获取小程序APPID
Vue.prototype.GetMiniAppId = function() {
let appObj = {};
let appType = 2;
switch (appType) {
case 1: //旅小友-支付宝
appObj = {
AppId: '2021002181604459',
TenantId: 12,
MallBaseId: 2,
};
break;
case 2: //旅小友-微信
//wx5564525562e92ddb
//wxcf0727a7c78b501e
appObj = {
AppId: 'wx5564525562e92ddb',
TenantId: 29,
MallBaseId: 19,
};
break;
}
return appObj;
}
//获取OpenId
Vue.prototype.GetOpenId = function() {
let mall_userinfo = wx.getStorageSync('mall_UserInfo')
var obj = {
OpenId: '',
UserId: 0,
token: '',
SmallShopsId: 0,
}
if (mall_userinfo) {
if (mall_userinfo.OpenId) {
obj.OpenId = mall_userinfo.OpenId;
obj.UserId = mall_userinfo.UserId;
obj.token = mall_userinfo.Token;
obj.SmallShopsId = mall_userinfo.UserSmallShopId;
}
}
return obj
}
//公用判断图片地址 判断是否包含http
Vue.prototype.getIconLink = function(url) {
let str = ''
if (url && url != '') {
if (url.indexOf('http') != -1) {
str = url
} else {
str = 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com' + url;
}
return str;
}
}
//价格返回.00
Vue.prototype.getPrice = function(val) {
val = Number(val).toFixed(2);
return val
}
Vue.prototype.apiheader = function() {
return {
'X-Access-Token': '_4Y_WpUZ4a6SI5uJgsZ4Lb7t9mvqJTyr',
'X-App-Platform': 'wxapp',
'X-App-Version': '4.2.47',
'X-Form-Id-List': '[]',
'X-Requested-With': 'XMLHttpRequest',
'X-User-Id': '19992',
'content-type': "application/json"
}
}
}
}
import Md5 from "js-md5"
import { get_xs } from '@/static/xhs.js'
const resolveRVHandler =(response)=>{
if(response.header && response.header['r-v']){
uni.setStorageSync("r-v",response.header['r-v'])
}
}
const getRVHandler = (payload,token)=>{
if(uni.getStorageSync("r-v")){
let a1 =uni.getStorageSync("r-v")
let xs = get_xs(payload, a1,token)
if(xs && xs !=''){
console.log(xs)
return xs
}
}
return ''
}
export default {
install(Vue, options) {
Vue.prototype.host = "https://wx.weibaoge.cn/web/index.php?_mall_id=1285"
Vue.prototype.host2 = "http://192.168.10.226:5004"
Vue.prototype.host3 = "http://192.168.10.226"
Vue.prototype.host2 = "https://erpmallapi.oytour.com"
Vue.prototype.host3 = "https://reborn.oytour.com"
Vue.prototype.request = function(param, success, failed) {
//网络请求
uni.request({
url: this.host + "&r=" + param.data.r,
method: param.method || "GET",
header: param.header || {
'content-type': "application/json"
},
data: param.data,
success: res => {
if (res.data.code != 0 && res.data.msg != "商品未上架") {}
typeof success == "function" && success(res.data);
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
});
}
Vue.prototype.request2 = function(param, success, failed) {
let data = {
MallBaseId: this.GetMiniAppId().MallBaseId,
TenantId: this.GetMiniAppId().TenantId,
OpenId: this.GetOpenId().OpenId,
UserId: this.GetOpenId().UserId,
SmallShopsId: this.GetOpenId().SmallShopsId,
MiniAppId: this.GetMiniAppId().AppId,
msg: param.data,
token: this.GetOpenId().token
}
//['X-s']
const sign = getRVHandler(data,this.GetOpenId().token)
//网络请求
uni.request({
url: this.host2 + param.url,
method: param.method || "Post",
header: param.header || {
'content-type': "application/json",
'x-sign':sign["X-s"],
'x-ts':sign["X-t"]
},
data,
success: res => {
resolveRVHandler(res)
if (res.data.resultCode == 10000) {
let u = uni.getStorageSync("mall_UserInfo");
if (u) {
this.getLogin_t(u)
typeof failed == "function" && failed(res.data);
}
} else if (res.data.resultCode != 1) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
});
}
//请求app接口
Vue.prototype.apipost = function(cmd, msg, success, failed) {
var data = this.GetPostData(cmd, msg, "");
//['X-s']
const sign = getRVHandler(data,data.token)
uni.request({
url: this.host3 + '/api/common/post',
method: "Post",
header: {
'Content-Type': 'application/json',
'x-sign':sign["X-s"], 'x-ts':sign["X-t"]
},
data,
success: res => {
resolveRVHandler(res)
if (res.data.resultCode == 10000 || res.data.resultCode == 10001) {
uni.removeStorageSync('b2b_user')
uni.removeStorageSync('mall_UserInfo')
// uni.redirectTo({
// url: '/pages/jiuzhai/login'
// })
uni.redirectTo({
url: '/pages/index/index'
})
} else if (res.data.resultCode != 1) {
if (!failed) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
})
},
Vue.prototype.javaApipost = function(cmd, msg, success, failed) {
let b2bUser = uni.getStorageSync('b2b_user')
let token = "";
let key = "";
let groupId = 0
let timestamp = (new Date()).valueOf();
var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase();
if (b2bUser && b2bUser.token) {
token = b2bUser.token;
key = b2bUser.secretKey;
groupId = b2bUser.groupId;
}
var md5Str = Md5(`msg=${encodeMsg}&timestamp=${timestamp}&token=${token}&key=${key}`);
var postData = {
"groupId": groupId,
"msg": msg,
"timestamp": timestamp,
"token": token,
"sign": md5Str,
}
uni.request({
url: 'https://efficient.oytour.com/api/' + cmd,
method: "Post",
header: {
'Content-Type': 'application/json'
},
data: postData,
success: res => {
if (res.data.resultCode == 10000 || res.data.resultCode == 10001) {
uni.removeStorageSync('b2b_user')
uni.removeStorageSync('mall_UserInfo')
// uni.redirectTo({
// url: '/pages/jiuzhai/login'
// })
uni.redirectTo({
url: '/pages/index/index'
})
} else if (res.data.resultCode != 1) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
})
},
Vue.prototype.apipostDownload = function(cmd, msg, success, failed) {
var postData = this.GetPostData(cmd, msg, "");
uni.request({
url: this.host3 + '/api/file/' + cmd,
method: "Post",
header: {
'Content-Type': 'application/json'
},
data: postData,
success: res => {
if (res.data.resultCode == 10000) {
let u = uni.getStorageSync("mall_UserInfo");
if (u) {
this.getLogin_t(u)
typeof failed == "function" && failed(res.data);
}
} else if (res.data.resultCode != 1) {
if (res.data.message != '') {
uni.showToast({
title: res.data.message,
icon: "none",
});
}
typeof failed == "function" && failed(res.data);
} else {
typeof success == "function" && success(res.data);
}
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content: "" + res.errMsg
});
typeof failed == "function" && failed(res.data);
}
})
},
//获取请求参数
Vue.prototype.GetPostData = function(cmd, msg) {
if (msg == null || msg == "") {
msg = {}
}
let b2bUser = uni.getStorageSync('b2b_user')
let token = ''
let key = ""
let groupId = ''
let timestamp = (new Date()).valueOf();
if (b2bUser && b2bUser.token) {
token = b2bUser.token
key = b2bUser.secretKey
}
if (b2bUser) {
groupId = b2bUser.groupId
}
var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase();
var postData = {
"groupId": groupId,
"msg": msg,
"cmd": cmd,
"timestamp": timestamp,
"token": token,
"sign": '',
"locale": 'zh_CN',
"currencyCode": 'CNY',
version: 'MiniProgram'
}
return postData
},
// token失效再次登录接口
Vue.prototype.getLogin_t = function(obj) {
console.log('apijs', obj)
let pid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
let Up = uni.getStorageSync("Up") ? uni.getStorageSync("Up").Up : 0;
let SmallShopId = uni.getStorageSync("SmallShopId") ? uni.getStorageSync("SmallShopId").SmallShopId : 0;
let CounponPassword = uni.getStorageSync("CounponPassword") ? uni.getStorageSync("CounponPassword").CounponPassword :
0;
let KeyWord = uni.getStorageSync("KeyWord") ? uni.getStorageSync("KeyWord").KeyWord : '';
this.request2({
url: '/api/AppletLogin/Login',
data: {
Source: obj.Source,
OpenId: obj.OpenId,
Name: obj.Name,
Photo: obj.Photo,
Moblie: '',
SuperiorId: pid,
SmallShopId: SmallShopId,
UserPageType: Up,
CounponPassword: CounponPassword,
KeyWord: KeyWord,
}
},
res => {
if (res.resultCode == 1) {
uni.setStorageSync('mall_UserInfo', res.data);
uni.removeStorageSync('pid');
uni.removeStorageSync('SmallShopId');
uni.removeStorageSync("Up");
uni.removeStorageSync("CounponPassword");
uni.removeStorageSync("KeyWord");
}
}
);
}
// 获取小程序APPID
Vue.prototype.GetMiniAppId = function() {
let appObj = {};
let appType = 2;
switch (appType) {
case 1: //旅小友-支付宝
appObj = {
AppId: '2021002181604459',
TenantId: 12,
MallBaseId: 2,
};
break;
case 2: //旅小友-微信
//wx5564525562e92ddb
//wxcf0727a7c78b501e
appObj = {
AppId: 'wxcf0727a7c78b501e',
TenantId: 12,
MallBaseId: 2,
};
break;
}
return appObj;
}
//获取OpenId
Vue.prototype.GetOpenId = function() {
let mall_userinfo = wx.getStorageSync('mall_UserInfo')
var obj = {
OpenId: '',
UserId: 0,
token: '',
SmallShopsId: 0,
}
if (mall_userinfo) {
if (mall_userinfo.OpenId) {
obj.OpenId = mall_userinfo.OpenId;
obj.UserId = mall_userinfo.UserId;
obj.token = mall_userinfo.Token;
obj.SmallShopsId = mall_userinfo.UserSmallShopId;
}
}
return obj
}
//公用判断图片地址 判断是否包含http
Vue.prototype.getIconLink = function(url) {
let str = ''
if (url && url != '') {
if (url.indexOf('http') != -1) {
str = url
} else {
str = 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com' + url;
}
return str;
}
}
//价格返回.00
Vue.prototype.getPrice = function(val) {
val = Number(val).toFixed(2);
return val
}
Vue.prototype.apiheader = function() {
return {
'X-Access-Token': '_4Y_WpUZ4a6SI5uJgsZ4Lb7t9mvqJTyr',
'X-App-Platform': 'wxapp',
'X-App-Version': '4.2.47',
'X-Form-Id-List': '[]',
'X-Requested-With': 'XMLHttpRequest',
'X-User-Id': '19992',
'content-type': "application/json"
}
}
}
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment