个人案例
图略
征集照片小程序、采集视频、收集旅游照片整理的小程序
征集照片小程序、采集视频、收集旅游照片整理的小程序扫码体验
Fotoo征集一下丨征稿投票评选
一个方便照片征集、视频征集、投稿的小程序
一个方便照片征集、视频征集、投稿的小程序扫码体验
口算卡132
口算卡132
口算卡132扫码体验
- 微信小程序虚拟支付 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 - -15005 用户态签名signature错误,官方能帮我检查吗?
OfferID(支付应用ID) 1450493965 一直报15005,怎么调整都不行,黔驴技穷了,求助官方,求助官方 mode: "short_series_coin" paySig: "1312fb259a5349f550eedfebeb05aa437372d027ff8e2907f20a95c2cfb7089c" signData: "{"offerId":"1450493965","buyQuantity":994,"env":1,"currencyType":"CNY","outTradeNo":"Fotoo202604012039235685491257346","attach":"fotoo"}" signature: "c8a56dcfbbfc524f25d506c5d583d00f926d08754d22c30284484d2daa897aaf"
04-01 - window 小程序 wx.chooseMedia 返回值不是接口文档预期的
https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseMedia.html 如图,左边是开发工具,符合文档预期;右边是windows pc 小程序,返回值严重偏离文档 [图片]
2025-02-27 - 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 - 最新的隐私策略 影响 wx.setClipboardData 接口,无法复制
app.json 中增加 "__usePrivacyCheck__": true, wx.setClipboardData 不报错,无法复制; 调用其他页面同意隐私后,wx.setClipboardData 依旧无法使用; app.json 去掉 "__usePrivacyCheck__": true, wx.setClipboardData 功能正常
2023-09-14 - 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信息?
2022-08-15 - 小程序分享中的“在电脑上打开”,这个功能真是方便用户吗?完全不考虑开发吗?
对于小程序分享中的“在电脑上打开”,有以下疑问? 1,直接打开内部页面,怎么做鉴权? 2,依赖前一页逻辑,怎么处理? 3,在pc打开时,app.js 都不执行,你们是认真的吗? 4,“在电脑上打开” 怎么配置路径? 5,“在电脑上打开” 怎么禁用? 6,“在电脑上打开” 怎么调试?手机开发板“在电脑上打开” 后pc显示的是正式版
2022-04-21 - image 挂马吊起轻应用,华为手机必现
我们接入了客户广告,客户图片是动态生成的 https://mxa.xzdzsww.com/img/122/201011.jpg (目前挂马图片已被修复了) 小程序使用标准 image 组件放置客户图片 然后你就不管了,进入小程序就直接呼起轻应用 按官方说法,小程序必须设置安全域名才能呼起轻应用,且官方并未有呼起轻应用接口 代码层面怎么处理?使用background-image可以不
2022-03-26 - 当前提审的开发版本代码与隐私协议内容不匹配,怎么修改?
当前提审的开发版本代码与隐私协议内容不匹配,怎么修改? 不匹配,又不明确说明哪里不匹配,我们该怎么修改呢,望指教!!!!
2021-11-05 - PC版微信不能打开线上小程序
PC上之前是可以打开的,今天有用户反映打不开了; 目前体验版可以打开,正式版一直卡在 加载框架页面 AppID(小程序ID) wx08a0c42413d32176 图略 [图片] [图片]
2020-10-23