微信 JSSDK 在 Android 和 iOS 的一处不一致

今天在使用微信的 JSSDK 时遇到一个诡异的问题:同一套代码,在 Android 中正确,在 iOS 中却失效。

于是开启了 debug,发现在执行 wx.config() 函数时就出现了不同的结果,Android 是 {"errMsg":"config:ok"},而 iOS 是 {"errMsg":"config:fail"}。即使此时我修改了代码确保传入完全相同的参数。

最终发现是在参数 nonceStr 上出了问题,这是一个用于生成签名的随机字符串,为了方便,我直接使用了一个随机数,因此其真正的类型并不是字符串,结果就出现了 Android 和 iOS 中的不同表现。

我想这处不一致,微信开发团队都未必知道。

其实我们自己在开发程序时也是如此,用户的输入实在有太多的可能,要把每种情况都考虑到要花费太多的精力,甚至有时候根本就是不可能的任务。所以只能妥协,做到确保在输入正确数据时得到正确结果,其他情况下就只能 garbage in garbage out 了。

反过来,从使用者的角度看,就要尽可能的按照规范来做,以避免出现奇怪的结果。

更多

在 Macbook 上跨平台编译 Gogs 以解决官方二进制包需要更高版本 glibc 而无法在 Anolis OS 8 上运行的问题

背景 几年前在阿里云上通过官方二进制包自托管了一套 gogs ,但是一直没有升级过。这次想一步到位升级到最新版本,却发现官方二进制包依赖更高版本的 glibc 而无法在 Anolis OS 8 上运行,最终计划通过源码编译一个二进制包来适配当前的服务器环境。 服务器环境 ##### root@AnolisOS8 ####### -------------- ##O#O## OS: Anolis OS release 8.9 x86_64 ####### Host: Alibaba Cloud ECS pc-i440fx-2.1 ########### Kernel: 4.18.0-553.40.1.0.1.an8.x86_64 ############# Uptime: 1 day, 23 hours, 40

By 熊立丁
用 Aria2 & AriaNg 搭建离线下载平台

用 Aria2 & AriaNg 搭建离线下载平台

环境 硬件:Mac Mini 2014 4C4G 操作系统:Debian 12 IP地址:192.168.2.2 流程 1. 切换到管理员权限 su root 2. 安装 aria2 apt install aria2 3. 以服务的形式运行 aria2 aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all --enable-rpc 启动 rpc 服务 --rpc-listen-all=true 允许从任意 IP 访问 --rpc-allow-origin-all 允许浏览器跨域访问 4. 配置 nginx 增加站点用于放置前端界面

By 熊立丁
浙ICP备15043004号-1