个人案例
图略
征集照片小程序、采集视频、收集旅游照片整理的小程序
征集照片小程序、采集视频、收集旅游照片整理的小程序扫码体验
Fotoo征集一下丨征稿投票评选
一个方便照片征集、视频征集、投稿的小程序
一个方便照片征集、视频征集、投稿的小程序扫码体验
口算卡132
口算卡132
口算卡132扫码体验
补充信息 sessionKey 无论强制刷新还是使用缓存的,都是一样的错误 ------------------ 已解决了,就是sessionkey的问题,传了code就好了;sessionkey来回传递可能被编码转义了,能存服务端还是存服务端吧
微信小程序虚拟支付 SIGNATURE_INVALID (-15005) 错误?已解决了,就是sessionkey来回传递的问题,传了code就好了;sessionkey来回传递可能被编码转义了,能存服务端还是存服务端吧 ----------------------- 问题描述在使用 [代码]wx.requestVirtualPayment[代码] 进行虚拟支付时,持续报错 [代码]SIGNATURE_INVALID errCode: -15005[代码],即使服务端返回的signature经验证完全正确。 复现步骤用户打开小程序调用支付接口,使用 [代码]parse.getSessionKey()[代码] 获取有效的sessionKey(通过 [代码]wx.checkSession()[代码] 验证)将sessionKey传递给服务端 [代码]/activity/payment/virtualPay[代码]服务端使用HMAC-SHA256算法计算signature调用 [代码]wx.requestVirtualPayment[代码] 并传入服务端返回的参数报错:[代码]requestVirtualPayment:fail SIGNATURE_INVALID errCode: -15005[代码]预期结果支付正常进行 实际结果报错 [代码]SIGNATURE_INVALID errCode: -15005[代码] 关键信息服务端请求参数{ "serviceKey": "userdownloadtraffic", "tradeType": 1, "userId": "1405204833103639620", "count": 5, "sessionKey": "vSIhSBBIIsz5tjP0hqFxZQ==", "equipment": "ios", "platform": "miniprogram" } 服务端返回数据{ "code": "200", "message": "操作成功", "data": { "signData": { "offerId": "1450493965", "buyQuantity": 994, "env": 1, "currencyType": "CNY", "outTradeNo": "Fotoo202604012039292964878004225", "attach": "fotoo" }, "signDataStr": "{\"offerId\":\"1450493965\",\"buyQuantity\":994,\"env\":1,\"currencyType\":\"CNY\",\"outTradeNo\":\"Fotoo202604012039292964878004225\",\"attach\":\"fotoo\"}", "paySig": "83cb3ac3fb66592fa9e44580336b46c6523adea31896ba3968538545878f5f2b", "signature": "344c448f7f41f716cdb502fcd8781e3d5158faaad8aabe20becb80fd698b6d3a", "mode": "short_series_coin" } } 签名验证结果使用Python验证服务端signature计算完全正确: import hmac import hashlib import json sessionKey = 'vSIhSBBIIsz5tjP0hqFxZQ==' signData = { 'offerId': '1450493965', 'buyQuantity': 994, 'env': 1, 'currencyType': 'CNY', 'outTradeNo': 'Fotoo202604012039292964878004225', 'attach': 'fotoo' } signDataStr = json.dumps(signData, separators=(',', ':')) signature = hmac.new( sessionKey.encode('utf-8'), signDataStr.encode('utf-8'), hashlib.sha256 ).hexdigest() # 计算结果: 344c448f7f41f716cdb502fcd8781e3d5158faaad8aabe20becb80fd698b6d3a # 服务端返回: 344c448f7f41f716cdb502fcd8781e3d5158faaad8aabe20becb80fd698b6d3a # 匹配结果: True 前端代码逻辑sessionKey获取逻辑// utils/parse.js getSessionKey(hasFouce=false){ return new Promise(async (success,fail)=>{ if(!hasFouce){ this.sessionKey=await this.checkSessionKey(); if(this.sessionKey){return success(this.sessionKey);} } wx.login({ success:async res=>{ App.demand('/sys/loadSessionKey','GET',{jsCode:res.code}).then(res=>{ this.sessionKey=res.data; getApp().setStorageSync('sessionKey',this.sessionKey); success(this.sessionKey) }) }, }) }) }, checkSessionKey(){ return new Promise((success,fail)=>{ this.sessionKey=getApp().getStorageSync('sessionKey'); if(!this.sessionKey) return success(''); wx.checkSession({ success:res=>{ return success(this.sessionKey) }, fail:res=>{ return success('') } }) }) } 虚拟支付调用逻辑// pages/wxpay/wxpay.js async requestIAPPayment() { let payParams=(await App.demand('/activity/payment/virtualPay','POST',{ serviceKey:this.options.serviceKey, tradeType:1, userId:this.options.userId, count:this.options.count||1, sessionKey:await parse.getSessionKey(), equipment: this.getEquipment(), platform: "miniprogram", })).data; wx.requestVirtualPayment({ signData: payParams.signDataStr, paySig: payParams.paySig, signature: payParams.signature, mode: payParams.mode, success:(res)=> { console.info('requestVirtualPayment success', res) }, fail: (res)=> { console.error('requestVirtualPayment fail',res); }, }); } 问题分析服务端签名验证通过:使用服务端返回的sessionKey和signDataStr,通过HMAC-SHA256算法计算出的signature与服务端返回值完全一致sessionKey获取逻辑正常:使用 [代码]wx.checkSession()[代码] 验证sessionKey有效性验证通过则复用缓存的sessionKey验证失败才调用 [代码]wx.login()[代码] 重新获取错误持续出现:即使使用相同的有效sessionKey,错误仍然持续可能原因推测:微信客户端内部维护的sessionKey状态与前端通过 [代码]wx.login()[代码] 获取的不一致[代码]wx.checkSession()[代码] 返回成功,但微信客户端内部sessionKey实际上已经失效iOS平台的特殊行为或bug补充信息环境变量:[代码]env=1[代码](沙箱环境)多次测试使用相同sessionKey:[代码]vSIhSBBIIsz5tjP0hqFxZQ==[代码]每次都复用缓存的sessionKey,没有频繁调用 [代码]wx.login()[代码]
04-01换了 wx.chooseMedia,它的表现也是呵呵,就问你服不服 https://developers.weixin.qq.com/community/develop/doc/000864e952cd384615f246b146b800?fromCreate=0
wx.chooseVideo 已停止维护,但在window微信小程序中返回值变化了https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseVideo.html 按文档接口返回值应该如下图,2025年前window pc上也是这么返回的,我们一直正常使用 [图片] 但是2025年后 wx.chooseVideo ,window pc 返回值如下图,一个不维护的接口竟然返回值变化了???!!! [图片]
2025-02-27老板说她mac上重复了,叫我上去看看,官方修复了叫我下楼,瘦骨嶙峋
官方快来看看,小程序富文本显示出bug了吗?电脑上显示正常的,上午显示也是好好的, 但是刚刚显示就不行了,一个、内容显示很多次。。。。 [图片] <rich-text user-select="{{true}}" space="nbsp" nodes="{{article.content}}"></rich-text>
2024-05-29时间过得飞快,但就是不解决;可使用替代方案,webview嵌套h5,实现照片上传,可以保留照片exif; 搜索 图略 小程序,创建相册后,上传照片选从文件中上传那个按钮,上传后查看照片详情可以看到exif信息
HEIC 图片格式希望官方尽快支持?现状: 很多机型拍照后是heic格式,使用 chooseMedia 或 chooseImage 时,一些机型被转为jpg选择图片,导致exif丢失; 期望: 1,heic 转 jpg 请保留 exif 信息 2,支持选择 heic 文件,不要转 jpg 论坛搜索heic exif,相关问题整理如下,期望官方尽快处理 【BUG】wx.chooseImage选择手机的照片,无法获取部分照片的EXIF信息! 【BUG】wx.chooseImage选择手机的照片,无法获取部分照片的EXIF信息! wx.chooseImage选择heic格式图片怎么展示? image组件src不支持heic格式图片解析展示 ? chooseImage Api在OPPO findx3pro选择图片时选择HEIC格式未转格式问题? 如何解决小程序中无法支持heic格式图片的展示问题? wx.chooseImage为什么部分安卓机型拍照之后,图片没有exif信息? wx.chooseImage选择HEIC格式图片,安卓ios表现不一致? 使用wx.uploadFile()方法上传图片时,没有exif信息?
2023-12-08小程序管理后台,隐私协议中,确实没加剪贴板,我加上试试,还需要审核,得等些时间 ------------------------------------------ 已解决了,就是后台没加剪贴板的原因
最新的隐私策略 影响 wx.setClipboardData 接口,无法复制app.json 中增加 "__usePrivacyCheck__": true, wx.setClipboardData 不报错,无法复制; 调用其他页面同意隐私后,wx.setClipboardData 依旧无法使用; app.json 去掉 "__usePrivacyCheck__": true, wx.setClipboardData 功能正常
2023-09-14我们也遇到的,总有那么几个报错的,然后无论怎么操作,他都始终报错。 我们这边观察下来iphone出错的几率大
小程序获取群ID失败?微信小程序使用群内分享功能有部分用户出现以下错误,请问是什么问题?在线等很急,感觉是这两个月刚出现的问题 wx.getGroupEnterInfo出参: {"errMsg":"getGroupEnterInfo:fail data unknow error code","err_code":"65206"}
2022-10-12@官方大人,们,出来解答下吧?一键在 “在电脑上打开” ,内部页面逻辑都凌乱了~~
小程序分享中的“在电脑上打开”,这个功能真是方便用户吗?完全不考虑开发吗?对于小程序分享中的“在电脑上打开”,有以下疑问? 1,直接打开内部页面,怎么做鉴权? 2,依赖前一页逻辑,怎么处理? 3,在pc打开时,app.js 都不执行,你们是认真的吗? 4,“在电脑上打开” 怎么配置路径? 5,“在电脑上打开” 怎么禁用? 6,“在电脑上打开” 怎么调试?手机开发板“在电脑上打开” 后pc显示的是正式版
2022-04-212021-9-2 开学了,这个bug依然存在,pause 后 duration 还在偷偷跑
recorderManager.onStop录音完成返回的duration时长不对?[图片] 录音时当调用了recorderManager.pause()暂停,然后使用recorderManager.resume()恢复后,会导致最终recorderManager.onStop返回的文件时长duration与实际录制时长不符合(比实际大很多),生成的录音文件是可以正常播放的 最新发现1:一旦暂停,返回的duration就不对了。而且如果重录的话必须重新getRecorderManager才行,否则时长也会不对。 最新发现2:一旦调用了recorderManager.pause()暂停,然后不恢复,直接调用recorderManager.stop(),最终返回的duration会不对
2021-09-02已支持大文件读取了,看另一个问题帖 https://developers.weixin.qq.com/community/develop/doc/000eee62df8fa8f1bb7aada3c54400
求助官方,插件开发 FileSystemManager 是否能开通 读取权限- 需求的场景描述(希望解决的问题) 手机拍照和视频越来越大,客户端压缩太耗时间; 做一个分片上传的插件,读取文件内容后,进行分割上传; - 希望提供的能力 需要 FileSystemManager API,读取文件内容; 1. 官方是否考虑给插件开通 FileSystemManager 读取权限? 2. 我尝试了将 FileSystemManager 传递给插件,开发工具可以跑通,但真机上不行;希望官方可以给方案参考
2021-04-15引用组件要写到具体的组件文件名 你这引用只写到目录名,编译器又不是神,它能猜出来你要目录下的abc啊
自定义组件引用,路径问题?[图片]
2020-10-23