为支持C端用户可以在不同环境正常登录到兔展提供的H5页面,兔展内容中台提供了多种解决用户授权的方案。
使用方法:
previewer字段说明
表明访问环境,支持的参数值有:mp、app。
用户务必留意自己活动投放的环境。
userInfo字段说明
字段 | 类型 | 描述 |
userInfo | object | 身份信息 |
identitys | object[] | 多组身份信息 ,最大支持5组身份信息 |
identityType | string | 身份类型:openid=微信环境下的openid、unionid=微信环境下的unionid,fans_id=有赞商城识别id,支持自定义类型标识 |
identityValue | string | 身份类型对应的id取值 |
mpid | string | 微信公众号appid或小程序appid或自建应用id等 |
platform | string | 平台标识,公众号/小程序(gzh)、自建应用(external) |
isWeChatEcosystem | boolean | 是否微信生态,true是 false否 |
说明:identitys必需且至少一组身份数据,否则建档失败。identityType的取值为“工作台”->“用户”->“用户身份管理”中的”用户身份id“配置。
数据结构:
{ "userInfo":{ "identitys":[ { "identityType":"openid", "identityValue":"openid-xxxx-xxxxx-xxxxx-xxxxx", "mpid":"wxappid", "platform":"gzh", "isWeChatEcosystem":true }, { "identityType":"unionid", "identityValue":"unionid-xxxx-xxxxx-xxxxx-xxxxx", "mpid":"wxappid", "platform":"gzh", "isWeChatEcosystem":true }, { "identityType":"memberNo", "identityValue":"member-no-xxxx-xxxxx-xxxxx-xxxxx", "mpid":"应用id", "isWeChatEcosystem":false }, { "identityType":"phone", "identityValue":"188xxxxxxxx" } ] } }
如果有其它的用户信息,也可以附加在userInfo内进行上报,例如预设的头像(headimgurl)、昵称(nickname)、性别(sex)等。
customFields为用户信息扩展字段,以对象数组的形式支持传入多条数据,其中fieldValue为字符串数组类型,可传入多条数据,fieldId为“工作台”->“用户”→“字段管理”中的”字段id“的配置
{ "userInfo":{ "identitys":[ { "identityType":"openid", "identityValue":"openid-xxxx-xxxxx-xxxxx-xxxxx", "mpid":"wxappid", "platform":"gzh", "isWeChatEcosystem":true }, { "identityType":"unionid", "identityValue":"unionid-xxxx-xxxxx-xxxxx-xxxxx", "mpid":"wxappid", "platform":"gzh", "isWeChatEcosystem":true }, { "identityType":"memberNo", "identityValue":"member-no-xxxx-xxxxx-xxxxx-xxxxx", "mpid":"应用id", "isWeChatEcosystem":false }, { "identityType":"phone", "identityValue":"188xxxxxxxx" } ], "nickname": "xxxx", "headimgurl": "xxxx", "sex": "0", "customFields": [ { "fieldValue": ["",""], "fieldId": "" }, ] } }
url地址带参示范
访问转换后url地址,验证上报参数
1、identitys是识别用户的标识,比如身份证号、手机号、会员卡号等;而customFields传入的是用户的属性,如职业、行业、岗位等,这些数据在校验通过后,都会落库存储。
2、若只需要在url中透传,无需持久化到兔展侧进行存储,则可以通过拼接extField参数来实现。
拼接 extField 的字段值时 需要对字段值进行一次转义操作 encodeURIComponent (JSON.stringify(第三方要传入的对象值))
示例:
|
小程序webview加载兔展作品时候携带加密后的(加密方式见下文)用户信息参数:mp_userinfo & app_id(详见参数说明表)方可自动授权。
注意:为防止作品本身发生默认的公众号授权,除字段 mp_userinfo & app_id 外任何时候都必须要传递 stopAuth=1 以及 previewer=mp 来阻止默认的公众号授权以及标明此作品访问环境为小程序
两种接入方式:
参数 | 类型 | 说明 |
---|---|---|
redirect_url | string | 当前H5页面地址,包含已有的其他字段 |
app_id | string | 自建应用id |
mp_userinfo | string | 加密后的用户信息 |
stopAuth | string | 停止公众号授权(此处永远指定为1) |
previewer | string | 标明访问环境为小程序(此处永远指定为mp) |
*文档地址:小程序环境授权
在【配置】-【数据集成】-【自建应用】页面下,点击“新建应用”,配置应用名称,勾选申请“编辑器-APP环境集成”的权限后,提交审核。
待运营人员在后台审核通过应用后,点击进入应用配置页,进行功能设置——
1、填写User-Agent标识,该标识无需全量填写,只要填写能标识出UA的关键字即可。
2、上传sdk文件,sdk文件具体参照App环境授权
3、设置是否需要校验用户登录态,若在拉取用户信息之前,需要先判断用户是否已登录,则选择“校验”,此时若是未登录状态可唤起登录页;若不需要校验用户是否已登录即可拉取用户信息,则选择“不校验”。
4、设置是否需要用户同意授权后再拉取用户信息,若设置”需要“,则在拉取用户信息之前会先弹窗获取用户同意;若设置”不需要“,则直接拉取用户信息。
配置”按钮“、”形状“、”图片“、”文本“、”头像昵称”这些组件时,可以设置组件的触发逻辑。
若需要在点击这些组件时唤起APP登录授权,则可在设置“点击时”“调起APP登录授权”,然后再点击“设置自建应用”,跳转至“预览设置”弹窗。
在弹窗下的“多环境应用设置”-“APP”下,选择已经设置好的自建应用,即可完成配置,
标准协议如表格所示,第三方需按此表格中的协议实现JS SDK代码包,兔展活动页面会在合适的时机来主动调用,JS SDK命名空间固定为:AppAuthorization
方法名 | 方法描述 | 入参 | 返回值 |
---|---|---|---|
isLogin | 检测用户是否已在App内登录 | 无 | true|false,当isLogin()方法返回为false未登录,则自动跳转到app登录页进行登录(此处由接入方SDK内实现)。 |
getUserInfo | 获取App内登录用户的详细用户信息 | 无 | { "identitys": [ { "identityType": "", // 身份类型,如idCardNo、userId、phoneNumber等 "identityValue": "" // 类型值 }, { "identityType": "", "identityValue": "" }, { "identityType": "", "identityValue": "" } ], // 多组身份信息 ,最大支持3组身份信息 "customFields": [ { "fieldValue": ["",""], "fieldId": "" } ], // 用户自定义字段,对象数组的形式,fieldValue为字符串数组类型,可传入多条数据,fieldId为工作台客户自定义字段的id "platform": "自建应用id", // 自建应用的应用id "userName": "用户名称", // 可选字段 "avatar": "用户头像", // 可选字段 "sex": "性别" // 可选字段 值为 1 时是男性,值为 2 时是女性,值为 0 时是未知 } |