测试帐号配置好了,计算的 signature 也和网页上计算的一致。我也不知道凭啥 invalid。但是我相信有生之年我一定能找到这xx的 invalid 是啥原因。到时候我一定会在这条帖子下留言,避免后面的兄弟再踩这个坑。
### 更新 ###
在我翻了后端的代码后意识到了问题,正如评论区的一个同学提醒,jsapi_ticket 过期了导致的。因为从文档中能看到 signature=sha1(string1),只是做了一个 hash 计算,所以 ticket 无效,后面的 signature 即使算出来一致的也是没有意义的。另外还有一个事情就是使用测试号的时候,填写域名,记得不要填写 http 协议部分,只用填写本地的 IP 即可,例如 192.168.16.128
还有这个域名的地方,真就一点格式校验都不做?一个示例也不给?填什么东西全靠开发者自己到处找?
这不是说ticket过期了吗
func getJsApiTicket() (string, error) {
// 尝试从缓存文件中读取jsapi_ticket
data, err := ioutil.ReadFile(cacheFile)
if err == nil {
ticket := strings.TrimSpace(string(data))
return ticket, nil
}