最近要升级以前做的微信公众号项目,ts目前还在学习阶段,在用sha1
加密签名的时候遇到一个坑,用var sha1 = require('sha1')
导入第三方模块,会报require is not defined
这个错误,(似乎是vite
的问题,目前还没找到解决方法,如果有大佬知道如何解决请评论告知下,谢谢~)于是只能换成这种方法引用
首先去公众号平台绑定js安全域名,然后在index.html
中引入js文件
<script src="//res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
接着根据文档配置wx.config
,从后端的小伙伴那里拿到jsapi_ticket
后就可生成签名了,签名用到sha1
加密,这里附上sha1-ts版,解构使用即可
import { hexSha2 } from './sha1';
const str = 'jsapi_ticket=' + jsapi_ticket + '&noncestr=' + nonceStr + '×tamp=' + timestamp + '&url=' + url;
const signature = hexSha2(str);
最后调用wx.config
时会报wx
没有声明,因此我们需要先为它创建一个声明文件,在typings
目录下新建一个wx.d.ts
文件写好声明即可,这里分享一个别人写好的声明文件,调用即可:
const wx = window['wx'];
然后就可以愉快地使用啦~