分享下自己这半个月从了解淘宝联盟,到和淘宝联盟(一下简称tbk)对接的过程,在这里做一个分享也做一个记录。
1、申请注册淘宝联盟账号(https://pub.alimama.com/)
2、淘宝客接入流程()
项目技术使用介绍,如java,框架技术等()
- 淘宝java SDK包下载和安装
- 淘宝token获取,保存
- 淘宝token刷新
- 淘宝api接口调用
淘宝token获取,保存
1.项目使用的maven的技术,直接在本地安装tbk的sdk包
#安装淘宝联盟sdk
mvn install:install-file -Dfile=C:\Users\admin\Desktop\taobao-sdk-1.0.jar -DgroupId=taobao -DartifactId=sdk -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=C:\Users\admin\Desktop\taobao-sdk-source-1.0.jar -DgroupId=taobao -DartifactId=sdk-source -Dversion=1.0 -Dpackaging=jar
在这里可以参考一些淘宝联盟论坛的接入文档(url),根据tbk文档的官方链接拼code,appkey,serert,state(自定义封装参数),后台重定向跳转至淘宝账号登陆页面(如果想跳过账号密码输入,需要使用到另外的tbk api接口,app也涉及一些原生的技术点)。
// An highlighted block
/**
* 淘宝用户授权登录
*/
@ApiOperation(value = "淘宝用户授权登录")
@GetMapping("自己的请求路径")
public String oauth(HttpServletRequest request, @PathVariable Integer userId, @PathVariable Integer type) {
// state 可以封装一些业务参数,用于业务和校验,然后Base64加密
//这个不是必须项,根据自己业务进行扩展
String state = this.encodeState(userId, type);
String authCodeUrl = TaoBaoUtils.getOAuthCodeUrl(
"appkey", uri, state(自定义参数), "授权视图默认wap(app)");
// 存入缓存,用作校验
redisFactoryString.set(TaoBaoUtils.CACHE_TAOBAO_STATE + userId, state, 30, TimeUnit.MINUTES);
return authCodeUrl;
}
/**
* 获取淘宝授权url
* @param appKey
* @param redirectUri
* @param state
* @param view
* @return
*/
public static String getOAuthCodeUrl(String appKey, String redirectUri,
String state, String view) {
StringBuffer urlBuffer = new StringBuffer("获取授权 code的uri");
String oAuthCodeParam = getOAuthCodeParam(appKey, redirectUri, state, view);
urlBuffer.append(oAuthCodeParam);
return urlBuffer.toString();
}
/**
* 获取授权参数:response_type=code&client_id=23075594&redirect_uri=http://www.oauth.net/2/&state=1212&view=wap
*/
public static String getOAuthCodeParam(String appKey, String redirectUri,
String state, String view) {
StringBuffer urlBuffer = new StringBuffer();
urlBuffer.append("response_type=").append("code");//固定是code值
urlBuffer.append("&client_id=").append(appKey);
urlBuffer.append("&redirect_uri=").append(redirectUri);//回调地址
urlBuffer.append("&state=").append(state);
urlBuffer.append("&view=").append(view);
return urlBuffer.toString();
}
当用户输入密码点击授权以后,tbk服务端会有一个回调地址这个回调地址是需要在淘宝联盟进行设置的(设置域名如果www.baidu.com,具体的回调路径后台就可以配置为: www.baidu.com/xxx/xxx/xxx)。这个回调地址返回的参数就有token,还有自己拼接的state参数信息。到这一步token就获取到了。
笔者这边token是存储在redis缓存中的,tbk返回的token信息包含token失效时间,刷新token,刷新token失效时间。主要注意的就是这几个参数。到这一步我们就可以使用token去获取用户授权到淘宝联盟的会员id(specaiId),渠道id(relationId)等信息。(会员id,渠道id的获取需要我们去申请接口获取,这个大家自己看下申请流程和条件就可以了)
解释一下会员id和渠道id
会员id是指用户授权tbk给我们注册的淘客联盟下用户的一个标识,这个id可以获取用户的操作记录等
渠道id是指授权到淘客联盟分享优惠卷的用户id,如识别这条订单是谁分享的。可以根据这个来获取这个用户分享的商品下单率,本月赚取金额等。