- 关于getUserEncryptKey signature 的问题
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/internet/internet.getUserEncryptKey.htmlhttps://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/internet/internet.getUserEncryptKey.html 用sessionkey对空字符串签名得到的结果。即 signature ,是以下哪种?文档没写清楚 base64Decode 后的 sessionKey, 对空串进行hmac SHA256签名后的 大写 hexString base64Decode 后的 sessionKey, 对空串进行hmac SHA256签名后的 小写 hexString base64Decode 后的 sessionKey, 对空串进行hmac SHA256签名后的 base64String原 sessionKey ,对空串进行hmac SHA256签名后的 大写 hexString原 sessionKey ,对空串进行hmac SHA256签名后的 小写 hexString原 sessionKey ,对空串进行hmac SHA256签名后的 base64String
2022-08-02 - 在 getUserEncryptKey 接口中,签名用的 sessionkey,过期策略是什么样的?
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/internet/internet.getUserEncryptKey.html 实际在开发过程中, 第一次登陆,正常使用 sessionKey 签名正常签名,调用此接口用户的encryptKey列表,一切正常 过几分钟: 小程序checkSession 有效 服务端再用同样的 sessionkey 签名,调用接口获取用户 encryptKey, 报错, invalid signature, 强制重新引导登陆,流程恢复正常 经过一系列测试,推测只要sessionKey一分钟不使用,再 getUserEncryptKey的时候,就会 invalid signature 但主要是前端 checkSession 是有效的,这让我几乎无法预测签名可能会失败的时间点,无法做出进一步措施
2022-08-02 - macOS 使用camera开发者工具闪退
使用macOS系统开发小程序,使用camera组件,开发者工具总是闪退,开通权限也不行 macOS:11.6 开发者工具:1.05.2201242 <template> <view> <view class="" v-if="isAuth"> <camera device-position="back" flash="auto" @error="error" style="width: 100%; height: 500upx;"> <cover-image src="../../static/scan-frame/scan-img.png" class="scan-img"></cover-image> </camera> </view> <view class="scan-text">请将XXX放置白色框内</view> <button type="primary" @click="takePhoto">拍照</button> <image mode="widthFix" class="photos-box" :src="src"></image> </view> </template> <script> export default { data() { return { src: '', isAuth: false }; }, onLoad() { let _ = this; wx.getSetting({ success(res) { if (!res.authSetting['scope.camera']) { wx.authorize({ scope: 'scope.camera', success() { _.isAuth = true; } }); } } }); }, methods: { takePhoto() { const ctx = uni.createCameraContext(); ctx.takePhoto({ quality: 'high', success: res => { this.src = res.tempImagePath; /* 返回调用页面并把图片URL传递过去 */ /* let pages = getCurrentPages(); let prevPage = pages[pages.length - 2]; prevPage.setData({ "image": res.tempImagePath, }) uni.navigateBack(); */ /* 调用页面获取图片URL方法 */ /* let pages = getCurrentPages(); let currPage = pages[pages.length-1]; if(typeof(currPage.data.image) != undefined && currPage.data.image != null){ console.log('获取图片:', currPage.data.image) } */ } }); }, error(e) { console.log(e.detail); } } }; </script> <style> .scan-img { opacity: 0.4; width: 100%; height: 500upx; } .scan-text { font-size: 20px; text-align: center; line-height: 60upx; } </style>
2022-02-22