小程序私密消息¶
功能介绍¶
小程序私密消息功能是这样一种能力:当分享者分享小程序卡片给其他用户或者微信群后, 其他用户点击此小程序卡片时,开发者可以鉴别出点击卡片的用户是否被分享者分享过小程序卡片。
使用说明¶
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字段被篡改的可能,可以把encryptedData和iv传到开发者后台去解密。若解密后得到的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)
}
})