微信公众号平台微信分享&&微信h5跳转微信小程序---签名错误导致原因

微信分享实现

  1. 前端发送接口获取微信配置信息
    api.getWxConfigParams({
      currentUrl: encodeURIComponent(window.location.href)
    }).then(res => {
      if (res.code === 0) {
        const { appId, nonceStr, signature, timeStamp } = res.data
      //执行第二步
      } else {
        console.error(res.msg)
      }
    })
    // 注: 换取签名的地址一定是动态的,前端在传值给后台的时候记住要进行编码,一定不要传送带#(hash)的部分
    
  2. 前端根据接口返回的数据信息调用微信配置
      ···
      const data = {
          debug: false,
          appId,
          nonceStr,
          signature,
          timestamp: timeStamp,
          jsApiList: [...jsApiList] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
        }
    
        wx.config(data)
        wx.ready(function () {
          wx.showOptionMenu && wx.showOptionMenu()
          success && success()
        })
        wx.error(function (res) {
          fail && fail()
        })
        // 注: 需要在配置后的功能需要配置在jsApiList里面,主要有以下几个常用功能
        'onMenuShareAppMessage', // 获取'分享给朋友'按钮状态&&自定义分享内容 --- 即将废弃
        'updateAppMessageShareData', // 自定义“分享给朋友”及“分享到QQ”按钮的分享内容(更新点击右上角分享时的信息)
        'updateTimelineShareData', // 朋友圈
        'chooseImage', // 拍照或从手机相册中选图
        'previewImage', // 预览图片
        'hideOptionMenu', // 隐藏
        'showOptionMenu', // 显示
        'uploadImage', // 上传图片
        'downloadImage', // 下载图片
        'getNetworkType', // 获取网络状态
        'chooseWXPay' // 微信支付
    
  3. 配置成功后调用微信分享api
// 分享当前页
    shareCurryPage ({ name = '', userId = '' }) {
      wxConfig.injectConfig(() => {
        console.warn('zhixinglllll========>', wx)
        wx.onMenuShareAppMessage({
          title: `我是${name}分享标题`, // 分享标题
          desc: '我是分享描述', // 分享描述
          link: `我是分享地址?${userId}`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl: '我是分享图片', // 分享图标
          function (res) {
            // 设置成功
            console.warn(res)
          }
        })
      })
    },
    // 注: 在配置分享图片的时候需要检查一下地址是否正确,注意this的指向

微信h5跳转微信小程序-原文

1.新增wxconfig配置

...
const data = {
  debug: false,
  appId,
  nonceStr,
  signature,
  timestamp: timeStamp,
  jsApiList: [...jsApiList], // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
  openTagList: ['wx-open-launch-weapp'] // 跳转小程序配置
}
...

// 微信的jsdk的版本必须在1.6.0及以上版本才能使用

2.使用代码

<wx-open-launch-weapp
  id="launch-btn"
  username="小程序原生id"
  path="跳转地址.html"
>
  <script type="text/wxtag-template">
    <style>.btn { padding: 12px }</style>
    <button class="btn">打开小程序</button>
  </script>
</wx-open-launch-weapp>
<script>
  var btn = document.getElementById('launch-btn');
  btn.addEventListener('launch', function (e) {
    console.log('success');
  });
  btn.addEventListener('error', function (e) {
    console.log('fail', e.detail);
  });
</script>

// 注: 在微信环境打开才可以看到对应标签

签名失败

  1. 微信配置config打开debug是弹出签名失败提示
    微信签名失败
  2. 检查失败原因
    微信文档截图
    注意点如下:
    1. 注意配置文件中的各个值的命名方式,严格遵守大小写
    2. 换取签名中间值的时候所使用的appid,timestamp,noncestr要保持一致
    3. 上送的地址不能含有#,最好进行转码
    4. 生成的签名可以根据开发文档上提供的地址进行检查
    5. 如果以上问题都没有错误,请阅读开发文档的第一条要求,确定绑定域名方可使用
      在这里插入图片描述
  3. 域名绑定步骤
    • 登录公众号平台
    • 进入公众号设置
      在这里插入图片描述
    • 设置好对应的安全域名地址
      在这里插入图片描述
    • 最后再次打开设置界面将验证文件下载下来上传到安全域名对应的服务器文件夹根目录下

具体问题请参考微信开发文档,根据文档提示进行检验,如果还是有问题,可以随时联系社区,希望你顺利实现响应功能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值