个人案例
- 临翔慧民居
社区管理, 物业水电, 租房, 论坛, 招聘求职.
临翔慧民居扫码体验
- [有偿]wx.config 提示 invalid signature?
有偿解决哈, 欢迎私聊 前端代码 // main.ts import { createApp } from "vue"; import "./style.css"; import App from "./App.vue"; import * as VueRouter from "vue-router"; import routes from "./router"; import { initWx } from "./lib/wx"; const router = VueRouter.createRouter({ // history: VueRouter.createWebHashHistory(), history: VueRouter.createWebHistory("/web/mz-public/"), routes, }); router.afterEach(() => { initWx(location.href); }); createApp(App).use(router).mount("#app"); // wx.ts export async function initWx(url: string) { const res = await axios.post(`${HOST}/signature`, { url }); const { signature, timestamp, noncestr, accessToken, jsApiTicket } = res.data; const config = { appId: APPID, timestamp, debug: true, jsApiList: ["openLocation"], nonceStr: noncestr, signature, }; console.log(JSON.stringify({ ...config, url, accessToken, jsApiTicket })); wx.config(config); } 后端代码 const cache = { access_token: { value: "", outtime: 0 }, jsapi_ticket: { value: "", outtime: 0 }, }; async function getAccessToken() { if (cache.access_token.value && cache.access_token.outtime > new Date().getTime()) { console.log("access_token ok"); return cache.access_token.value; } const result = await axios.get( `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}` ); cache.access_token.value = result.data.access_token; cache.access_token.outtime = new Date().getTime() + EXPIRE_TIME; return result.data.access_token; } async function getJsApiTicket(access_token: string) { if (cache.jsapi_ticket.value && cache.jsapi_ticket.outtime > new Date().getTime()) { console.log("jsapi_ticket ok"); return cache.jsapi_ticket.value; } const result = await axios.get( `https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${access_token}&type=jsapi` ); cache.jsapi_ticket.value = result.data.ticket; cache.jsapi_ticket.outtime = new Date().getTime() + EXPIRE_TIME; return result.data.ticket; } function generateSign(params: { jsapi_ticket: string; url: string; timestamp: string }) { const { jsapi_ticket, url, timestamp } = params; const msg = [ `jsapi_ticket=${jsapi_ticket}`, `url=${url}`, `timestamp=${timestamp}`, `noncestr=${NONCESTR}`, ].sort((a, b) => { return a < b ? -1 : 1; }); console.log("msg"); return crypto.createHash("sha1").update(msg.join("&")).digest("hex"); } export async function getSign(url: string) { console.log(cache); const accessToken = await getAccessToken(); const jsApiTicket = await getJsApiTicket(accessToken); const timestamp = new Date().getTime().toString().slice(0, 10); const signature = generateSign({ jsapi_ticket: jsApiTicket, url, timestamp }); return { signature, timestamp, noncestr: NONCESTR, accessToken, jsApiTicket }; } 验证器验证过 signature是正确的, 怀疑url有问题, 但试了两种都不行 [图片]
2023-09-14 - 小程序备案 企业工商四要素核验失败?
[图片]
2023-09-08 - 小程序 mac端预览, 分包页面报错-5?
主包正常, 只有分包会报错, 而且是所有的分包都会报错. [图片]
2023-09-07 - getLocation和map中show-location不匹配?
为了让用户处于地图的正中间, 使用wx.getLocation获取用户的经纬度, 但获取的经纬度和地图中的用户标记(show-location)不匹配. 该如何解决这个问题?
2023-07-13 - 开发者工具自动预览无效?
最近在mac上进行真机调试, 发现mac自动预览无效, 同时手机的自动预览也无效, 唯独扫码正常. 尝试过切换依赖库, 最新稳定版和nightly测试版重新安装都无效. macos: 13.0.1 开发者工具 开发版 Nightly Build (1.06.2212152)稳定版 Stable Build (1.06.22010310)预发布版 RC Build (1.06.2212011)基础库 2.26.22.27.32.28.12.29.0
2022-12-19 - for循环的swiper拿不到index?
[图片] 如图监听swiper的change事件的getIndex拿到的i始终都是0
2022-09-02 - 主营类目无法选择?
目前服务类目为党团组织, 选择主营类目无法选择. [图片] [图片]
2022-07-04 - 如何通过父组件修改子组件样式?
测试了一下发现在page中写的样式可以渗透到自定义组件及其子组件, 但自定义组件中的样式无法影响其子组件. 有什么办法可以让自定义组件修改其子组件的样式?
2022-02-08 - voip-room上下颠倒?
[图片][图片]preview或者体验版voip-room看自己是颠倒的, 看别人的是正的(别人看他自己也是颠倒的) [图片]remote debug是正常的
2021-08-25 - voip-room 先进的人退出,后进的人卡死?
手机1进房间 手机2进房间 手机1退出(wx.exitVoIPRoom) 手机2 wx.onVoIPChatMembersChanged拿到的openidList正常(voip-room组件在控制台中被渲染)但实际画面渲染不出来wx.onVoIPVideoMembersChanged拿到的openidList为空数组
2021-01-12