uniapp H5 公众号微信自定义分享qq,微信带图片标题内容

本文涉及的产品
.cn 域名,1个 12个月
简介: uniapp H5 公众号微信自定义分享qq,微信带图片标题内容

uniapp H5 公众号微信自定义分享qq,微信带图片标题内容



效果图    


image.png


1、登录微信公众号(需要已经认证过的公众号)


进入“设置与开发”→“公众号设置”→“功能设置”→“JS接口安全域名”,将文件下载下来,上传至与将要分享的页面相同的域名服务器中,上传成功后再在下面填写你的域名。

image.png

2.在“设置与开发”→“基本配置”→“IP白名单”中配置你的IP地址,这里的IP地址是获取签名步骤时需要访问的IP地址。

image.png

3、在“设置与开发”→“基本配置”中拿到APPID及密钥(也就是开发者密码AppSecret),这里在获取签名时需要用到。

image.png

4.后端操作


这时候可以开始获取签名了,在生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。


通过官方给出的信息,我们需要先获取access_token(有效期7200秒,2个小时开发者必须在自己的服务全局缓存access_token),access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。


/*  这部分其实大部分都是后台协助开发的,因为要服务器缓存
  前端可以了解下逻辑
  采用http GET方式请求
  https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的APPID&secret=你的AppSecret
  返回结果如下:
*/
{"access_token":"此处返回的是你的access_token","expires_in":7200}

5、通过access_token获取jsapi_ticket(有效期7200秒,2个小时,开发者必须在自己的服务全局缓存jsapi_ticket)


/*  这部分其实大部分都是后台协助开发的,因为要服务器缓存
  前端可以了解下逻辑
  采用http GET方式请求
  https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=你的access_token&type=jsapi
  返回结果如下:
*/
{
  "errcode":0,
  "errmsg":"ok",
  "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
  "expires_in":7200
}

6、生成签名


参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。


首先:对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:


顺序依次为:jsapi_ticket,noncestr,timestamp,url。


noncestr随机字符串生成

image.png



注意!!!

签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。

签名用的url必须是调用JS接口页面的完整URL。

出于安全考虑,开发者必须在服务器端实现签名的逻辑。


点击下面文字进行校验


微信 JS 接口签名校验工具


微信 JS 接口签名校验工具


7.前端代码(我这是自己封装了一下,要是想直接用的话就直接把uni.request里面的复制,然后进行修改里面的路由及配置)


概述 | 微信开放文档


概述 | 微信开放文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html


看看里面微信官方文档,多看看了解一下,对新手要不,不友好


看看文档怎么引入SDK的,使用都是一样,就是引入分两种


一种是


npm install jweixin-module

另一种是链接引入


import wx from 'jweixin-module'
export default (title = '领装分享', content = '领装分享自定义分享') => {
  封装开始
  uni.request({
  url: 'https://lingzhuang.gengduoke.com/adminapi/wxshare/callback',
  data: {
    url: location.href
  },
  success(res) {
    wx.config({
    debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
    appId: res.data.data.appId, // 必填,公众号的唯一标识
    timestamp: res.data.data.timestamp, // 必填,生成签名的时间戳
    nonceStr: res.data.data.nonceStr, // 必填,生成签名的随机串
    signature: res.data.data.signature, // 必填,签名
    jsApiList: [
      "updateAppMessageShareData",
      'updateTimelineShareData',
    ]
    });
    wx.ready(function() { //需在用户可能点击分享按钮前就先调用
    ///配置自定义分享内容
    let options = {
      title: title, // 分享标题
      desc: content, // 分享描述
      link: location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
      imgUrl: 'https://h5.lingzhuang.gengduoke.com/static/close.png', // 分享图标
      success: function() {
      console.log('设置成功2222222')
      },
      cancel: function() {}
    }
    wx.updateAppMessageShareData(options)
    wx.updateTimelineShareData(options)
    });
    wx.error(function(res) {
    console.log('wx.----err---------', res)
    // config信息验证失败会执行 error 函数,如签名过期导致验证失败,具体错误信息可以打开 config 的debug模式查看,也可以在返回的 res 参数中查看,对于 SPA 可以在这里更新签名。
    });
  },
  fail(err) {
    console.log('request------err', err)
  }
  })
}


分享链接里面的那个图片imgUrl是在线的链接

目录
相关文章
|
21天前
|
监控 算法 测试技术
即时通讯技术文集(第45期):微信、QQ技术精华合集(Part2) [共14篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第45 期。
32 3
|
1月前
|
API
如何在公众号里制作微信报名表
微信万能表单不仅可以制作各种报名单,也可以用作问卷调查,商品发布,登记汇总等,可以根据自己需求,来添加组件,比如姓名、手机号、性别、报名的时间、报名的图片等,因为微信报名表涉及的用途比较广泛,所以很多商家在做微信公众号报名表的时候,针对性不会太强,没有什么局限性,应用还是起来比较方便的
57 12
|
28天前
|
存储 编解码 监控
即时通讯技术文集(第44期):微信、QQ技术精华合集(Part1) [共14篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第44 期。
24 2
|
2月前
|
应用服务中间件 网络安全 Apache
Discuz! X3.5 开启ssl证书加密后微信、公众号无消息、支付宝通讯中断等
Discuz! X3.5 开启ssl证书加密后微信、公众号无消息、支付宝通讯中断等、支付宝支付实际支付成功,显示未支付等,都属于通讯中断,需要联系DZ官方付费修改程序,屏蔽防CC!
65 4
|
2月前
|
移动开发 Android开发 容器
uniapp中使用videojs构建H5直播播放器
【10月更文挑战第14天】这两天在开发H5直播带货功能模块,使用原生的video播放器播放不了m3u8的流地址,于是找了videojs,参考了网上的一些资料研究了一下,感觉还不错,videojs播放m3u8流地址还挺稳定的,下面就简单记录一下uniapp里面使用方式
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
358 3
|
2月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
83 0
微信小程序:自定义关注公众号组件样式
|
2月前
|
Web App开发 移动开发 前端开发
uniapp环境H5运行及发行(入门必学)
uniapp环境H5运行及发行(入门必学)
282 5
|
2月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
1081 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
2月前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
54 0