收藏
回答

h5跳转小程序 Authurl:xxxx config:invalid signature ?

场景描述:

h5页面中引入微信JSSDK使用打开小程序功能。弹框提示上述错误,请问问题出在什么地方?

  1. 已使用微信js接口签名校验工具进行测试
  2. 已在微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
  3. "weixin-js-sdk": "^1.6.0"
  4. access_token和jsapi_ticket均已进行缓存
  5. 公众号已配置js安全域名
  6. wx.config 如下
// main.js	
// #ifdef H5
import wx from 'weixin-js-sdk';
import http from '@/api/index.js';
(async function() {
	// 接口中入参有一个url,直接取location.href.split('#')[0]
	const wxData = await http.wx.signature();
	alert(JSON.stringify(wxData));
	wx.config({
		debug: true, // 调试时可开启
		appId: 'wxf39a2eaeeddf80a0', // 必填,公众号的唯一标识
		timestamp: wxData.timestamp, // 必填,生成签名的时间戳
		nonceStr: wxData.nonceStr, // 必填,生成签名的随机串
		signature: wxData.signature, // 必填,签名
		jsApiList: ['updateTimelineShareData'],
		openTagList: ['wx-open-launch-weapp']
	});


	wx.ready(function() {
		// config信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中
	});


	wx.error(function(res) {
		// config信息验证失败会执行 error 函数,如签名过期导致验证失败,具体错误信息可以打开 config 的debug模式查看,也可以在返回的 res 参数中查看,对于 SPA 可以在这里更新签名
		// alert(JSON.stringify(res));
	});
})();
// #endif

回答关注问题邀请回答
收藏

2 个回答

  • lin-w
    lin-w
    2022-10-12

    已解决appId写成了小程序的了,应该是公众号的 开发者ID(AppID)

    2022-10-12
    有用 2
    回复 1
    • 习惯
      习惯
      2023-07-31
      你好,请问用测试公众号来模拟一直报这个错是一定要正式的公众号才可以吗?
      2023-07-31
      回复
  • จุ๊บ
    จุ๊บ
    2022-10-12

    生成签名时,使用的当前完整url 与 实际不一致

    2022-10-12
    有用
    回复 5
    • lin-w
      lin-w
      2022-10-12
      我是直接使用location.href,路由模式是history
      2022-10-12
      回复
    • จุ๊บ
      จุ๊บ
      2022-10-12回复lin-w
      个人建议 检查实际参与签名的 完整URL和当前页面的完整URL 是否真的是一致的
      2022-10-12
      回复
    • lin-w
      lin-w
      2022-10-12回复จุ๊บ
      好的谢谢你
      2022-10-12
      回复
    • 孝^_^
      孝^_^
      2022-10-18
      可以本地调试吗?我一直提示签名失败,所有参数都没有问题,可以请教一下吗?
      2022-10-18
      回复
    • lin-w
      lin-w
      2023-01-31回复孝^_^
      不能本地调试,得到线上调试
      2023-01-31
      回复
登录 后发表内容