好久不搞扫码了。今天上手就报错:
微信jssdk扫码报错:{"realAuthUrl":["http://192.168.79.169/gaijia"],"errMsg":"config:invalid url domain"}
这个错误提示表明你在配置微信JS-SDK时,使用了一个不合法的URL域名。
根据微信官方文档,为了确保安全性,微信JS-SDK只允许使用白名单中的URL地址。当用户发起分享、扫码等操作时,会检查当前页面的URL是否在白名单中。如果不在白名单中,则会提示"config:invalid url domain"错误。
解决这个问题的方法是,在微信公众平台后台的"开发->基本配置"中,将需要使用JS-SDK的URL地址添加到"JS接口安全域名"列表中。另外,还需要在HTML页面中正确设置appId和timestamp等参数,以确保签名的正确性。
换成白名单域名后不报错了。
以下是一个示例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>微信JS-SDK示例</title> <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script> wx.config({ debug: false, appId: '你的AppID', timestamp: <?php echo $timestamp; ?>, nonceStr: '<?php echo $nonceStr; ?>', signature: '<?php echo $signature; ?>', jsApiList: [ 'scanQRCode' ] }); </script> </head> <body> <button onclick="wx.scanQRCode()">扫一扫</button> </body> </html>
上面的代码中,使用wx.config()方法配置JS-SDK,其中debug属性表示是否开启调试模式,appId属性表示你的公众号AppID,timestamp、nonceStr和signature属性分别表示签名所需的时间戳、随机字符串和签名值,这些参数可以在服务器端生成。最后,在jsApiList属性中指定需要使用的API接口(例如scanQRCode)。