首页 > 编程语言 >小程序私密消息

小程序私密消息

时间:2024-12-25 09:32:15浏览次数:7  
标签:验证 私密 程序 activityId valid 消息 分享 wx

小程序私密消息

功能介绍

小程序私密消息功能是这样一种能力:当分享者分享小程序卡片给其他用户或者微信群后,其他用户点击此小程序卡片时,开发者可以鉴别出点击卡片的用户是否被分享者分享过小程序卡片。

使用说明

1. 分享

创建业务活动后、分享小程序消息前,需要通过后台接口 createActivityId 创建activityId,建立一个activityId与一个业务活动id唯一关联。

然后通过 wx.updateShareMenu 接口声明本次分享的消息为私密消息,私密消息具有不可二次转发性。

声明完成后,可以通过右上角菜单、分享按钮组件、wx.shareAppMessage(仅小游戏)分享私密消息给个人、群聊。

场景一: 个人分享给个人

A --> B

场景二: 个人分享给群

A --> [B, C, D, E]

示例代码

wx.updateShareMenu({
  withShareTicket: true,
  isPrivateMessage: true,
  activityId: 'xxx',
})

2. 验证

从群聊、单聊消息卡片进入小程序时,通过 wx.authPrivateMessage 接口可以验证当前用户是否是私密消息的接收者,即验证这条消息是否是A直接转发给B或者A转发给B所在的群

该接口使用前,需要通过 wx.login() 接口登录小程序。

接口参数

参数 类型 说明
shareTicket string shareTicket

success回调

参数 类型 说明
valid Boolean 验证是否通过
iv String 加密算法的初始向量,详细见加密数据解密算法
encryptedData String 经过加密的activityId,解密后可得到原始的activityId。若解密后得到的activityId可以与开发者后台的活动id对应上则验证通过,否则表明valid字段不可靠(被篡改) 详细见加密数据解密算法

注意事项

  • 若返回的valid字段为false,表示此次验证不通过。
  • 若返回的valid字段为true,表示验证通过。但是为了安全起见,预防valid字段被篡改的可能,可以把encryptedDataiv传到开发者后台去解密。若解密后得到的activityId就是当前活动所对应的activityId 则验证通过,否则表示验证不通过。
  • 当私密消息分享给群时,是按鉴别时刻用户是否在群里作为判断。
  • activityId创建后7天内分享有效,120天内验证有效。

示例代码

wx.authPrivateMessage({
  shareTicket: 'xxxxxx',
  success(res) {
    console.log('authPrivateMessage success', res)
    // res
    // {
    //   errMsg: 'authPrivateMessage:ok'
    //   valid: true
    //   iv: 'xxxx',
    //   encryptedData: 'xxxxxx'
    // }
  },
  fail(res) {
    console.log('authPrivateMessage fail', res)
  }
})

标签:验证,私密,程序,activityId,valid,消息,分享,wx
From: https://www.cnblogs.com/AtlasLapetos/p/18624222

相关文章

  • 动态消息
    动态消息从基础库2.4.0开始,支持转发动态消息。动态消息对比普通消息,有以下特点:消息发出去之后,开发者可以通过后台接口修改部分消息内容。消息有对应的提醒按钮,用户点击提醒按钮可以订阅提醒,开发者可以通过后台修改消息状态并推送一次提醒消息给订阅了提醒的用户消息属性......
  • 小程序加密网络通道
    小程序加密网络通道从基础库2.17.3开始支持一、功能介绍在前后端开发联调过程中,开发者通常会使用代理软件对自己开发的项目服务做请求转发,便于切换开发环境和进行测试。代理软件可以在客户端与真实服务器之间进行数据传输。这时,代理软件可以解密并查看通过SSL加密的......
  • 面向对象程序设计JAVA学习总结
    第一章“初识JAVA与面向对象程序设计”廖利凯1、JAVA概述1.1计算机编程语言发展史机器语言:由微处理器理解和使用的二进制代码,是第一代编程语言,如0001111111101111等,直接控制硬件操作,但难记且不通用。汇编语言:用英文单词指令编写程序,是第二代编程语言,如MOVAX,1等,相比机......
  • 【Python项目】用pywin32在聊天窗口发送QQ好友/群消息
    源码中涉及到的函数用法:win32clipboard.SetClipboardData(format,hMem):它需要一个格式化的数据对象和一个数据块。CF_DIB——DIB图片,它包含一个BITMAPINFO结构,然后是位图位。CF_DIF——软件领域的数据交换格式。CF_PALETTE——调色板。每当应用程序放置数据在剪贴板......
  • 《程序员修炼之道:从小工到专家》读书笔记——4
    培养良好的开发习惯成为专家程序员不仅仅依赖于技术能力,还需要养成良好的开发习惯。良好的开发习惯不仅能提高开发效率,还能保证代码质量,减少错误发生的可能性。专家程序员通常在开发过程中保持高度的规范性和系统性,遵循最佳实践,不断优化自己的开发流程,做到更好。首先,专家程序员......
  • 《程序员修炼之道:从小工到专家》读书笔记——6
    代码审查与团队协作在软件开发过程中,代码审查是一项至关重要的活动。它不仅可以提高代码质量,发现潜在的错误,还能够促进团队成员之间的技术交流和学习。对于程序员来说,进行有效的代码审查,不仅是对自己代码的验证,也是提高整体团队技术水平的一种方式。专家程序员通常非常重视代码......
  • 《程序员修炼之道:从小工到专家》读书笔记——5
    有效沟通和团队协作成为一个技术专家,不仅需要技术能力的提升,还需要具备良好的沟通和团队协作能力。大多数项目都是团队合作的成果,专家程序员通常在团队中起到核心作用,通过有效沟通协调各方,推动项目的顺利进行。首先,专家程序员要具备良好的表达能力和沟通技巧。他们能够清晰地阐......
  • springboot毕设宣威红色文化遗址推广平台论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景宣威市作为云南省最大的县级革命老区,有着悠久的红色历史和光荣的革命传统,红色文化资源丰富,现存众多红色旧址、遗址、纪念设施或场所等物质资源,还......
  • springboot毕设少儿体能训练在线课程预约管理系统程序+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会发展和人们健康意识的提高,少儿体能训练受到越来越多的关注。现代社会中,少儿面临着各种电子设备的诱惑,户外活动和体能锻炼相对不足。同时......
  • springboot毕设校园爱心帮扶平台论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会的发展,校园作为一个小型社会,也存在着部分学生面临各种困难的情况,如经济困难、学习困难、心理困扰等。传统的帮扶方式往往局限于学校内部......