微信H5中的一些坑

最近在写微信公众号H5页面

遇到了一些坑,在这里记录一下

 记录一下signature的计算


// 首先找到hex_sha1的加密算法,ticket 是后端提供的

var url_local = location.href.split('#')[0]

var timestamp = parseInt(new Date().getTime() / 1000)

var noncestr = Math.random().toString(36).substr(2) 

var signature = hex_sha1('jsapi_ticket=' + wechatConfig.scan_info.ticket + '&noncestr=' + noncestr + '&timestamp=' + timestamp + '&url=' + url_local) 


在调用wx.config时

比如微信的扫码:  ios 和 android 有些不同(限于我遇到的情况) 

android 下 直接在wx.ready中调用微信的接口就可以

ios 需要把wx.conifg 的操作放在外层比如React /invitation/result 是android调用的,那么在Router走到/invitation/这一层的时候就把wx.config设置完

还有一个特别注意的点

比如说后端用微信做一个短连接

http://dwz.cn/505F7AA // 大概是这样的

然后在微信中打开以后这个短连接会变成

http://你的网址/index?code=xxx&state=xxx&invite=xxx

这时候在做业务处理中有可能你需要绑定自己系统中的用户,这时候路由会发生跳转 http://你的网址/login,在处理完登录绑定以后,再跳转回来 http://你的网址/index,在这个时候一定要记得加上后面的?code=xxx&state=xxx&invite=xxx,这后面的参数也是计算signature关键的一部分,虽然微信告诉你绑定二级目录就可以,但这里是一个坑