...
- 本授权功能需接入方企业先在兔展营销云开通 “数据集成” 模块,并获得 “自建应用” 的使用权限。
- 自建应用内申请开通 编辑器 → 小程序环境授权(不推荐使用)/小程序环境集成(推荐使用),后续联系管理员审核通过。应用配置界面如下
使用 小程序环境授权 (自建应用模块)
此处标记的应用id、授权秘钥请务必妥善保管,需要用于授权信息的加密、解密等操作。
或者使用 小程序环境集成 (自建应用模块) - 配置好对应配置项,点击保存即可,小程序集成中,如果没有特殊的处理, 集成中间件js文件不用编写,可单独传空的js文件。配置好对应配置项,点击保存即可。
- 为数据安全起见,用户信息mp_userinfo必须使用AES方式进行加密(加密方式见下文),此授权方式不接受任何明文方式传入。
- 如果接入方采用接入方式二(见下方授权流程介绍),除接入方需自行实现小程序授权页面外,还需在兔展活动编辑器内为作品添加登录授权按钮,具体配置如下
...
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
vue下的前端加密 安装依赖:npm install crypto-js 代码示例: /** * AES加密 * @param {string} secretKey 用于加密的key * @param {string} content 待加密明文字符串 * @returns {string} 加密后的密文 */ export function setTzEncrypt (content) { const secretKey = 'DpOGgKkq7-AFkKpUu5LsluM7acc' const key = crypto.SHA1(crypto.SHA1(secretKey)).toString().substring(0, 32) const newKey = crypto.enc.Hex.parse(key) const newContent = crypto.enc.Utf8.parse(content) const encrypted = crypto.AES.encrypt(newContent, newKey, { mode: crypto.mode.ECB, padding: crypto.pad.Pkcs7 }) return encrypted.ciphertext.toString().toUpperCase() } const userInfo = { // 传入用户信息,包括昵称、头像、性别、省、市及其他自定义的用户信息 wechatUserInfo: { nickname: "", headimgurl: "", sex: 0, city: "", province: "", country: "", // 必传字段,值为自建应用id,表明数据来源于某自建应用 platform: app_id, customFields: [ { // 这里只是示例 fieldValue: ["手机号码值","项目编码值"], fieldId: 123 } ] // 用户自定义字段,对象数组的形式,fieldValue为字符串数组类型,可传入多条数据,fieldId为工作台【用户】-【字段管理】中的 字段id(非 字段名称) }, audienceUserInfo: { // 传入用户身份标识,使用key value形式传入,key为识别字段的类型(对应工作台-【用户】-【用户身份管理】中的用户身份id),value为对应值,如果需使用微信openid和unionid作为用户身份标识,也许按照此格式在此处传递 // 如身份证,可传入"idCardNo":"xxxxxxxxxxxxxxx", 此处仅为举例,具体字段类型请根据接入方自身的用户身份识别标识传入 // 如openid,可传入"openid": "xxxxxxxx", 此处仅为举例,具体字段类型请根据接入方自身的用户身份识别标识传入 // 如third_userid,可传入"third_userid": "1234567890", 此处仅为举例,具体字段类型请根据接入方自身的用户身份识别标识传入 // 身份类型标识,全局唯一用户ID标识建议用 third_userid 。自定义身份字段名需要优先在 兔展 用户-身份字段管理中新增配置后才能正常使用 key: value, }, }; // 加密前,加密时需要通过JSON.stringify转换成字符串内容 setTzEncrypt(JSON.stringify(userInfo)) |
Java版AES(ECB)加密demo:
以下为Java版本的AES加密demo。
...
如果接入方使用非Java或Node.js语言作为服务端语言,请按照AES(ECB)标准自行实现(注意秘钥需使用自建应用的授权秘钥secretkey)。