Android阿里百川返佣功能集成

百川官方的接入文档

这个是官方文档, 即使严格按照官方文档集成, 可能还是会有各种各样莫名其妙的问题

公司负责人的接入博客 (很详细)

附上他的开源项目githug

第三方教程文档

这个是我找到的另一个第三方文档, 不过少了一点后续过程

因为我们有几个兄弟公司, 都做了淘宝返佣这个功能, 我们是最后做这个功能的, 说实话, 刚接到任务我是有点无从下手的, 百川的sdk也没有讲的那么详细, 在开发的过程中才慢慢摸出一点门道, 也希望对后来的集成者能有一些力所能及的帮助.

1. 去创建你的应用

2. 下载对应的安全图片

3.申请开通你的电商功能,马上就能通过

4.gradle配置

repositories { maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" }
}
dependencies {// 授权登陆 (MemberSDK)compile 'com.ali.auth.sdk:alibabauth_core:1.2.4@jar'compile 'com.ali.auth.sdk:alibabauth_ui:1.2.4@aar'compile 'com.ali.auth.sdk:alibabauth_ext:1.2.4@jar'// fastjsoncompile 'com.alibaba:fastjson:1.2.9'// 基础电商组件(AlibcTradeSDK, AlibcTrade, AlibcLogin)// 包含打开detail,淘客分润,jsbridge注入等功能compile 'com.alibaba.sdk.android:alibc_trade_sdk:3.1.1.11@aar'// 集成支付宝(可选)compile 'com.alibaba.alipay:alipaySingle:20160825@jar'// 组件可用性统计compile 'com.alibaba.mtl:app-monitor-sdk:2.5.1_for_bc'// 基础安全组件compile 'com.taobao.android:securityguardaar3:5.1.96@aar'// 网关compile 'com.taobao.android:mtopsdk_allinone_open:1.3.0@jar'// 手机淘宝与三方app之间的往返跳转compile 'com.taobao.android:alibc_applink:2.0.0.9@jar'// deviceID,主要用于计算设备的uttid, 设备唯一标识compile 'com.taobao.android:utdid4all:1.1.5'
}
复制代码

5.初始化, 最好是在Application里

AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() {@Overridepublic void onSuccess() {// 初始化成功,设置相关的全局配置参数// 是否使用支付宝AlibcTradeSDK.setShouldUseAlipay(true);// 设置是否使用同步淘客打点AlibcTradeSDK.setSyncForTaoke(true);// 是否走强制H5的逻辑,为true时全部页面均为H5打开AlibcTradeSDK.setForceH5(true);// 设置全局淘客参数,方便开发者用同一个淘客参数,不需要在show接口重复传入AlibcTradeSDK.setTaokeParams(taokeParams)// 设置渠道信息(如果有渠道专享价,需要设置)AlibcTradeSDK.setChannel(typeName, channelName)// ...}@Overridepublic void onFailure(int code, String msg) {//初始化失败,可以根据code和msg判断失败原因,详情参见错误说明}
});
复制代码

在合适的地方销毁

AlibcTradeSDK.destroy();
复制代码

业务中需要了解的细节

无论是H5还是吊起淘宝打开相关页面,都需要使用AlibcTrade.show()方法, 这个方法里面配置了很多参数, 基本决定了你的业务逻辑是否正常, 你可以像上面一样初始化的时候就配置好, 不过因为我们不止一个电商模块, 所以是单独设置的.

百川sdk具体的跳转AlibcTrade.show()方法

AlibcTrade.show(context, detailPage, showParams, alibcTaokeParams, exParams, new AlibcTradeCallback() {@Overridepublic void onTradeSuccess(AlibcTradeResult tradeResult) {}@Overridepublic void onFailure(int i, String s) {}
});
复制代码

第二个参数就是具体要跳转的页面, 我们的需求几乎都是碰到商品详情才跳转, 所以只用了两种方式AlibcDetailPage和AlibcPage, 前者只能使用ID跳转具体页面,后者只能通过url跳转具体页面

AlibcDetailPage detailPage = new AlibcDetailPage(id);
AlibcPage detailPage = new AlibcPage(url);
复制代码

第三个参数就是跳转方式,可以H5,可以拉手淘,也可以自动

AlibcShowParams showParams = new AlibcShowParams(OpenType.Native, false);
复制代码

第四个重要的参数是AlibcTaokeParams, 淘宝联盟后台的订单匹配就是通过PID来识别的

上图是pid的具体位置

上图是pid的具体含义, 这个解释能让你更好的理解为什么pid这么重要

AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams();
alibcTaokeParams.adzoneid = ConstBc.MALL_AD_ZONE_ID; //pub平台获取
alibcTaokeParams.pid = ConstBc.MALL_PID;
alibcTaokeParams.subPid = ConstBc.MALL_SUB_PID;
alibcTaokeParams.extraParams = new HashMap<>();
alibcTaokeParams.extraParams.put("taokeAppkey", ConstBc.APP_TAOKE_KEY); //pub平台获取Appkey
复制代码

adzoneid就是pid的最后一段,taokeappkey在阿里百川app控制台就能获取

第五个参数我不知道具体用处, 不过基本都是这么填的

Map<String, String> exParams = new HashMap<>();
exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
复制代码

上面是如何跳转,让用户购物后能够返佣

下面说一下细节需求

比如为了提升体验, 我们只在用户点击详情时才跳转手淘,并将刚才的参数传过去, 之前的所有淘宝相关的页面都用的webview, 所以我们需要重载webview.setWebViewClient(mWebviewclient)的mwebviewclient;

mWebview = new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {//当检测到详情页的url时跳转手淘,并返回true终止webview的跳转if(){AlibcTrade.show()return true}return super.shouldOverrideUrlLoading(view, url);}
};
复制代码

刚开始我是通过AlibcPage跳转的, 但是我们app首页有一个足迹导航栏,在淘宝授权后可以直接跳转到自己的足迹Web页面, 但是从足迹跳转web的时候并没有传pid, 明明设置了参数的, 后来改成提取详情页url里面的id, 然后通过AlibcDetailPage来跳转就可以了, 我也不明白原因

这是我们首页的导航按钮, 下面一排需要淘宝授权才能跳转,

if (!AlibcLogin.getInstance().isLogin()) {AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() {@Overridepublic void onSuccess(int i) {callBack.success();}@Overridepublic void onFailure(int i, String s) {callBack.fail();}});} else {callBack.success();}}
复制代码

通过AlibcTrade.show()方法吊起手淘,参数也传输正确, 用户购买成功之后, 需要及时去拉取用户的购物订单传给我们自己的后台, 然后我们自己的后台去淘宝联盟拉取属于我们平台推广的订单, 然后再匹配到某个用户, 在用户的订单列表页显示出来

int mPage = 1;//说明回来前已经跳到淘宝,就要拉去pc的订单页;try {String url = "https://buyertrade.taobao.com/trade/itemlist/asyncBought.htm?action=itemlist/BoughtQueryAction";byte[] bytes = ("pageNum=" + mPage + "&pageSize=15&prePageNo=" + (mPage - 1)).getBytes();connection = (HttpsURLConnection) new URL(url + "&event_submit_do_query=1&_input_charset=utf8").openConnection();connection.setRequestMethod("POST");connection.setDoOutput(true);connection.setInstanceFollowRedirects(false);connection.setUseCaches(false);connection.addRequestProperty("x-requested-with", "XMLHttpRequest");connection.addRequestProperty("Accept", "text/html,application/json, text/javascript, */*; q=0.01");connection.addRequestProperty("Accept-Encoding", "gzip, deflate");connection.addRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4,ms;q=0.2");connection.addRequestProperty("Referer", "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm");connection.addRequestProperty("Cookie", CookieManager.getInstance().getCookie(url));connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");connection.setRequestProperty("Content-Length", Integer.toString(bytes.length));connection.getOutputStream().write(bytes);connection.connect();String content = read(connection);
} catch (Exception e) {}
复制代码

上面是去淘宝的后台拉取用户的订单, 这段代码是copy的兄弟公司, 是否只能这样传, 是否每一个参数都得这样, 我都不知道, 我们两个人完成整个返佣功能工期只有一周, 很多东西都来不及验证, 这篇文章几乎也是记录一下

这里还有一个细节问题

后台是从淘宝联盟报表这里频繁的下载数据,然后匹配用户的返佣订单, 这里下载下来的是一个excel表格, 里面包含了各种信息, 其中有一个来源id, 后台通过excel的这一项来判断是否是我们上传的, 防止其他人恶意刷接口, 但是我们下载的报表一直没有来源id, 说实话, 这种问题真的莫名其妙, 各种分析查找, 最后换一个pid就好了[捂脸], 我也不知道为什么

转载于:https://juejin.im/post/5bcde822f265da0ae8015056

Android阿里百川返佣功能集成相关推荐

  1. 阿里妈妈佣金转换API接口(阿里妈妈返佣接口,淘宝客佣金接口,淘宝链接转换接口)代码对接教程

    阿里妈妈佣金转换API接口(阿里妈妈返佣接口,淘宝客佣金接口,淘宝链接转换接口,淘宝佣金转换接口)代码对接教程如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以 ...

  2. Android 阿里百川sdk 接入填坑(淘宝客)

    概述 阿里妈妈,阿里百川,淘宝客,懵逼了有没有. 百川全家桶,不知所措,一堆文档,没有具体某个功能的demo,想接个淘宝客,懵逼 1."安全图片获取"上传失败 不管怎么传都失败,也 ...

  3. Android 阿里百川cps SDK接入流程

    前言 因公司业务需求,需接入阿里百川SDK和京东联盟cps相关服务,为了跳到淘宝和京东,用户购买后得到佣金.接入过程中遇到很多坑,网上相关资料也甚少,虽然东西不算多,但花了不少时间,在此记录下来,为了 ...

  4. android 阿里百川初始化的深坑

    最近要做个项目需要集成阿里百川,就去按照官网的流程集成下来. 集成完初始化的时候首先提示203,去官网一看,是我傻了,忘记添加安全图片了,按照步骤打包签名apk去换取安全图片(换了个V5版本的),然后 ...

  5. Android集成阿里百川(AndroidStudio 4.2.1+gradle 6.7.1+gradle tool 4.2.1)

    按照阿里百川官方文档集成,下载安全图片.添加相关依赖.配置好混淆规则;然后gradle..... 集成Android版本的阿里百川,下载安全图片,引入依赖项目,配置混淆规则,搞完这一套,然后Gradl ...

  6. Android 集成阿里百川实现在线客服、聊天功能

    首先要感谢Android 技术 @淘子磊 最近开发中要实现在线客服和客服热线功能,实现在线客服有很多种方式,我觉得阿里百川做的事很好好的,无论是集成Step方面还是UI适配方面,关键还是免费的-- 附 ...

  7. 如何使用阿里百川hotfix热修复功能(三)

    这章我们进行patch补丁操作,参考 :  如何使用阿里百川hotfix热修复功能(一) 如何使用阿里百川hotfix热修复功能(二) 1.下载打包工具 patch补丁包生成需要使用到打补丁工具BCF ...

  8. android接入阿里百川商务SDK

    android接入阿里百川商务SDK 新业务APP是商业APP主要做优惠一块,其中就有接入阿里百川商务SDK的业务,不过本人感觉更像是接入淘宝客. 1.分佣模式 在实际对接中,阿里官方人员明确表示,阿 ...

  9. Flutter集成阿里百川SDK踩的坑

    最近有需求拉起淘宝客户端,所以看了看阿里自己的sdk----阿里百川,网上说会有冲突,但也没有解决,说技术文档很多坑,也没说坑在哪....好怕自己也会掉坑,阿里百川应该要更新技术了,毕竟是给自己亲儿子 ...

最新文章

  1. 【Groovy】集合遍历 ( 调用集合的 any 函数判定集合中是否有指定匹配规则的元素 | 代码示例 )
  2. asp.net开源工作流CCFlow的下载与安装
  3. Facebook:苹果谷歌支持HTML5会死啊
  4. 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案
  5. 安装 Git ( Windows、linux、Mac)
  6. Python介绍、发展史、安装、变量、注释、输入
  7. 三种常用数据标准化方法
  8. 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。(指针)
  9. ps去水印教程_新手必会的PS去水印方法,绝对简单!
  10. php中的eof是什么意思,在C++中eof是什么意思?
  11. 运用VBA将Excel中【以文本存储的数字】转换为【数字】格式(去除绿色小三角)
  12. note edge android 6.0 root,三星Note Edge N9150刷机包带ROOT权限固件ZCU1BOH2线刷Rom
  13. 如何通过URL打开图片(Python)
  14. Linux intel-xed反汇编引擎使用
  15. 使用JDK自带的 keytool 工具生成公私钥证书库
  16. Mysql-事务篇(1)
  17. ULINK的手动刷新固件
  18. iOS逆向实战与工具使用(微信添加好友自动确认)
  19. 写给曾经的自己现在的自己和未来的自己
  20. 厚积方可薄发 看网易云信在业内如何“弯道超车”

热门文章

  1. php又拍云,又拍云文档中心
  2. C#全局鼠标/键盘钩子
  3. 机器学习之正态分布拟合
  4. 配置好JDK后,jemeter依旧启动报错
  5. 小学生手写Python程序解魔方 这绝对是高手
  6. python xml文件解析 及生成xml文件
  7. 工具 | 虚拟串口软件的使用分享
  8. 证书链不完整的解决方法
  9. jQuery正则表达式表单验证身份证号码
  10. c# SQLite下载和安装