UNPKG

gtht-miniapp-sdk

Version:

gtht-miniapp-sdk 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

100 lines (99 loc) 3.53 kB
import sm3 from 'sm3-standard'; import { CommonApiResult } from './common'; import { Persist } from './persist'; import { Request } from './request'; import { defaultConfig } from '../components/config'; //获取当前服务器时间 export async function getServerTime() { const persist = new Persist('TIME_DIFF'); let diff = persist.get('diff'); const local = new Date(); if (diff === undefined) { const request = new Request(); try { const resp = await request.post('https://i.gtja.com/fmarketing/common/commonIndex', {}, { params: { needTimeStamp: '1', activityCode: '202406_BDHB', }, }); if (resp && resp.data && resp.data.data && resp.data.data.timeStamp) { diff = Number(resp.data.data.timeStamp) - local.valueOf(); persist.set('diff', diff); } else { if (resp.statusCode === 200) { throw resp.data.msg || '获取服务器时间请求失败'; } throw '获取服务器时间请求失败,状态码:' + resp.statusCode; } } catch (error) { console.warn('获取服务器时间失败', error); return CommonApiResult.fail(error); } } return CommonApiResult.success(local.valueOf() + diff); } //活动/微信组用sm3加密 export const sm3Encrypt = async (prefix, suffix) => { const serverTimeRes = await getServerTime(); if (serverTimeRes.isSuccess()) { return CommonApiResult.success(sm3((prefix || '') + +serverTimeRes.getData() + '' + 'ykFn-fK$~OS/]z#hckz[LFB10-oR2)iQ6[>zV4%nJ7/xL1%kLWxApp' + (suffix || ''))); } else { return CommonApiResult.fail(serverTimeRes.getMsg()); } }; export const sm3EncryptByTime = (prefix, time, suffix) => { if (!prefix) { prefix = ''; } if (!suffix) { suffix = ''; } return sm3(prefix + '' + time + '' + 'ykFn-fK$~OS/]z#hckz[LFB10-oR2)iQ6[>zV4%nJ7/xL1%kLWxApp' + suffix); }; //微信app初始化 export const wxAppInit = async () => { const persist = new Persist('WXAPP'); let init = persist.get('init'); const local = new Date(); if (init === undefined) { init = {}; const request = new Request(); try { const resp = await request.post(defaultConfig.wxApp.baseUrl + '/visitor/getInitInfo', {}, {}); if (resp && resp.data && resp.data.data && resp.data.data.serverTimeMillis) { init.diff = Number(resp.data.data.serverTimeMillis) - local.valueOf(); init.sMsgId = resp.data.data.sMsgId; init.serverTimeMillis = Number(resp.data.data.serverTimeMillis); persist.set('init', init); } else { if (resp.statusCode === 200) { throw resp.data.msg || '获取服务器时间请求失败'; } throw '获取服务器时间请求失败,状态码:' + resp.statusCode; } } catch (error) { console.warn('获取服务器时间失败', error); return CommonApiResult.fail(error); } } init.serverTimeMillis = local.valueOf() + init.diff; return CommonApiResult.success(init); };