- 如何在小程序内扫描解析小程序码?
通过wxacode.getUnlimited生成的小程序码,其中带自定义的scene值,直接用微信扫一扫,然后在小程序onload中通过decodeURIComponent(query.scene)获取自定义的scene是没有什么问题,问题是如何在我自己的小程序中,通过wx.scanCode扫描这个小程序码,解析这个小程序码,然后获取scene的值?scanType使用的是WX_CODE,返回是解析成功的,但是获取到的rawdata不知道再通过什么方法解析,以及返回的result是*号。如图:[图片] 这个rawdata看上去是base64编码过的,但是经过base64解码后,还是一串不知道是什么的字符串。是不是小程序码无法通过wx.scanCode解析的?如果是,那么scanType WX_CODE代表什么意思呢?谢谢各位。
2019-10-24 - 小程序验证签名(登录)的流程(含官方解答的最佳实践)
小程序审核突然没通过,理由如下: [图片] 这个问题开发过程中自己确实遇到过,几率性的,一般第一次不行,第二次肯定可以了,但是不是一开始写小程序就有的,不知道什么时候开始就这样了,验证的逻辑都是按照官方的,从来没有改变过。然后上社区一搜,很多类似的问题,如下图所示。 [图片] 看了下这个问题,第一次验证签名如下: [图片] 小程序端通过wx.login成功后获取的code rawdata,这个我都是同一用户登录,前后信息没啥变化 通过1中的code,后端调用api获得的session data,其中openid肯定同一用户每次也都一样的,session_key如果过期,那么第一次和第二次理论应该是不一样的。(但实际情况前后两次是一致的,具体可参见下图) 小程序端获取到的用户的签名 后端通过session key校验出来的签名。 很明显,4和5不一致,校验失败。接下来是第二次交验: [图片] 还是同样的逻辑顺序。 小程序端通过wx.login成功后获取的code。很明显,code跟第一次是不一样的,另外根据官方文档描述,因为又重新调用了wx.login,会导致session_key过期。(这似乎说明code发生变化也是对的,因为按推测,seesionkey应该也发生了变化,否则怎么叫“被更新”)请看下图官方文档说明:[图片] rawdata,这个我都是同一用户登录,前后信息没啥变化 根据1中的官方描述,奇怪的现象就发生了,在后端根据新的code,获取的session data,很明显session key还是第一次是一样的,也就是说,我重新调用了wx.login, code是变了,但是session key却和第一次保持一致的。 小程序端获取到的用户的签名 后端通过session key校验出来的签名。因为用的是同样的rawdata,同样的session key,所以两次校验的结果是一样的,但是第二次4中,小程序端获取的签名是跟此次校验结果是一致的。 所以问题就来了,这问题到底出在什么地方?似乎官方文档描述的就有问题,还是我本身的逻辑顺序有问题?请官方指教,谢谢。
2018-09-04 - 官方提供的密钥验签服务究竟怎么使用?一直报错。
小程序的密钥验签服务到底怎么使用?一直返回48001,官方文档只有潦草的几句描述。开过别的问题贴,也基本没啥回复,已经不知道如何是好了。参考链接和截图如下: https://developers.weixin.qq.com/miniprogram/dev/api/startSoterAuthentication.html [图片] access_token确保没有问题,是通过如下方式获取的: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appid + '&secret=' + secre [代码]另外openid是对应指纹验证客户的openid,json_string是指纹验证成功后返回的resultJSON, [代码][代码]json_signature是指纹验证成功后返回的resultJSONSignature。 [代码] [代码]如果我胡乱提交个access_token,错误信息就是无效的access_token,但是我access_token确保没问题,就是一直48001。帮忙看下,否则指纹验证就没法使用了,谢谢。 [代码]
2018-08-02 - 华为p20 pro指纹验证不支持
- 需求的场景描述(希望解决的问题) 华为p20 pro指纹验证不支持 - 希望提供的能力 支持华为p20 pro指纹验证
2018-07-30 - 指纹验证后,密钥验签服务调用返回48001
https://developers.weixin.qq.com/miniprogram/dev/api/startSoterAuthentication.html 微信已经提供后台接口,用于可信的密钥验签服务,微信将保证该接口返回的验签结果的正确性与可靠性,并且对于 Android root 情况下该接口具有上述特征(将返回是否保证root情况安全性)。 接口地址: http://api.weixin.qq.com/cgi-bin/soter/verify_signature?access_token=%access_token post 数据内容(JSON 编码): [代码]{"openid":"$openid", "json_string" : "$json", "json_signature" : "$sign" }[代码] [代码] [代码] 其中json_string使用的是指纹验证返回的resultJSON,json_signature使用的是resultJSONSignature。access_token是通过如下文档方式获取的https://developers.weixin.qq.com/miniprogram/dev/api/token.html#%E8%8E%B7%E5%8F%96-access_token openid应该也是没有错的。但是调用这个接口总是返回48001错误。 { errcode: 48001, errmsg: 'api unauthorized hint: [QlUlKa0358vr47!]' } 请问这是为什么?谢谢。
2018-07-30 - 安卓退出小程序后再次进入无法正常显示页面
安卓小程序,第一次进入的时候,事件都正确执行,程序也没什么问题,事件顺序如下: App: onLaunch have been invoked WAService.js:1 App: onShow have been invoked WAService.js:1 Register Page: pages/index/index WAService.js:1 Register Page: pages/logs/logs WAService.js:1 On app route: pages/index/index WAService.js:1 Update view with init data 但是当我“退出”小程序后再进入(退出是直接用安卓的任务管理器关闭了小程序),事件就不会再从App: onLaunch have been invoked开始,也不会有什么Register Page动作了,而是直接从On app route开始,所以就会出错,报如下错误: page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add page route in app.json.2. Invoking Page() in async task. 这就导致了所有页面无法显示。但是用官方的Demo同样操作是没这个问题的,也就是退出后,再进入,还是从App: onLaunch have been invoked开始,所以一切正常。想麻烦问下,这大概是什么原因造成的呢?是因为我在退出的时候有什么资源没释放,导致没有真正退出还是其他什么原因?弄了半天也搞不定。最好能帮忙看下,谢谢。
2018-07-12