基于微信实现H5扫一扫功能
需求说明:在vue项目中,调用微信扫一扫接口完成扫一扫功能
H5调用微信的扫码能力的前提是在微信应用内打开页面(或者说通过微信内置浏览器打开页面)。这个过程本质上就是通过微信提供的JS接口调用微信APP的原生能力。
通过微信JSAPI调用微信扫一扫需要的资源:
1.公众号AppID,AppSecret用来获取access_token,jsapi_ticket来完成签名。商城后端对应主机IP要加入IP白名单。
2.公众号配置的JS接口安全域名,也就是权益商城页面访问的域名。域名需要已备案。
3.在公众号配置的JS接口安全域名界面,微信提供下载的类似MP_verify_L7D722ljKNHzxrVM.txt这样的txt文件。需要放到我们商城后端主机,能让微信访问到。
签名生成的具体过程请阅读官方文档的“附录1-JS-SDK使用权限签名算法”:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#67
功能调用过程流程图
结合商家核销场景示意:
接入准备
整个接入过程准备分如下几步,按照要求做就可以了。如果配置不符合要求会有相应的提示。
获得开发者账号
- 登录微信公众平台:https://mp.weixin.qq.com/ 进行账号注册。
获得微信JSAPI需要的接入参数
接入微信JSAPI需要参数有两个:AppID, AppSecret
- 通过左侧菜单进入 *开发》基本配置* 功能
- 获取开发者ID(AppID)
- 设置并获取开发者密码(AppSecret)
- 配置IP白名单
白名单的配置决定了是否有权限调用微信接口获取签名所需的access_token和jsapi_ticket
JS接口安全域名设置
出于安全考虑等,微信会对发起调用页面的URL域名进行接入控制,页面的URL会参与到签名当中,微信在鉴别的时候所比对的域名就是这里要设置的安全域名。所设置的域名必须是经过ICP备案的。服务器还需要放置一个微信提供的txt格式文件。
此设置很关键,如果配置不符合要求,会导致前端注入config配置时失败,提示invalid url domain错误。
- 通过左侧菜单进入 设置》公众号设置 功能
- 在公共号设置功能里选择功能设置标签
- 填写保存域名
可设置三个域名,一个月内只可修改3次。微信提供了一个txt格式的文件也必须按要求放到服务器上。
接口调用权限
通过左侧菜单进入开发=》接口权限可查看所有接口调用权限,调用限制次数等信息。特殊注意类似access_token, jsapi_ticket的获取需要自己适当做缓存处理,防止达到调用上限导致功能无法使用。