dcustom 参数
一.使用背景
在开发者接入兑吧积分商城过程中有需要传一些自定义参数的场景,兑吧针对这种情况,在免登陆地址中增加了一个可扩展参数 dcustom ,用来传递开发者的自定义参数。
场景
1.积分商城对接过程中,有开发者需求积分商城首页定制需求,需要展示用户头像和昵称的场景。针对此场景,兑吧给出了定制化的需求功能。
2.开发者在对接积分商城中有涉及新旧用户区分需求,涉及拉新或者给新用户发放不同权益时,可以通过特定标识参数拼接在免登录地址中进行区分。针对此类场景以及后续统一维护。约定特定名称newUser,通过dcustom进行回传
3.在微信环境打开兑吧页面时,有些场景需要判断用户是否绑定和关注微信公众号,从而引导用户关注公众号,因此在生成免登录地址时候,需要开发者把是否关注公众号的标识传过来
二.常用几个dcustom参数传输实现
1.免登录传昵称头像
头像:avatar 昵称:nickname
dcustom参数传输格式如下: dcustom=encode(avatar=xxx&nickname=xxx)
2.新用户标识
在开发者使用兑吧的场景中,有对于新用户奖励或新旧用户区分活动参与的场景,需要把是否新用户标识通过免登录地址传给兑吧。
参数名称:newUser newUser=1 (新用户) newUser=0 (老用户) 参数不传默认为老用户
dcustom参数传输格式如下: dcustom=encode(newUser=1)
3.是否关注微信公众号标识判定
在微信环境打开兑吧页面时,有些场景需要判断用户是否绑定和关注微信公众号,从而引导用户关注公众号,因此在生成免登录地址时候,需要开发者把是否关注公众号的标识传过来。
参数名称:followOfficalAccount
followOfficalAccount=1(未关注微信公共号)
followOfficalAccount=0(已关注微信公众号)
dcustom参数传输格式如下: dcustom=encode(newUser=1)
三 dcustom 参数拼装方式【特别注意】
1:多个参数之间用&符号分隔,编码后作为dcustom参数拼接在免登录地址中。编码之后格式如下:
dcustom=avatar%3Dhttp%3A%2F%2Fyun.duiba.com.cn%2FduibaManagerWeb
%2F7fen28siy4.png%26nickname%3Dxiaoming%26newUser%3D1%26
followOfficalAccount%3D1
2.dcustom在生成免登录地址时需要作为签名参数加入签名。
包含dcustom的签名源串样例如下
签名源串:
jlg88lyxz7siqtmrAppSecret0nickname=avatar%3Dhttp%3A%2F%2Fyun.duiba
.com.cn%2FduibaManagerWeb%2F7fen28siy4.png%26nickname%3Dxiaoming%2
6newUser%3D1%26followOfficalAccount%3D115639404336910test
免登陆地址格式如下:
https://activity.m.duiba.com.cn/autoLogin/autologin?
dcustom=avatar%253Dhttp%253A%252F%252Fyun.duiba.com.cn%252FduibaMa
nagerWeb%252F7fen28siy4.png%2526nickname%253Dxiaoming%2526newUser%
253D1%2526followOfficalAccount%253D1
&uid=test&credits=0&sign=fc829e4881f23ae007b7a46310f1d056&
appKey=jlg88lyxz7siqtmr×tamp=1517283411911&
四.特别提醒
对于自定义参数中存在特殊字符的情况,比如nickname包含“%”、“&”等特殊字符时候,会导致dcustom在解析参数时候被分割从而引起参数解析失败的情况,对于这种情况,一般需要对dcustom参数中的nickname和avatar的值多一层编码。编码之后再赋值给dcustom
例如:nickname=张&三% 那么 对nickname进行编码之后如下,nickname=%E5%BC%A0%26%E4%B8%89%25 和avatar拼装之后赋值给dcustom,形如:
dcustom=nickname%3d%25E5%25BC%25A0%2526%25E4%25B8%2589%2525%26avatar%3dhttp%253A%252F%252Fyun.duiba.com.cn%252FduibaManagerWeb%252F7fen28siy4.png