百川官方的接入文档
官方集成文档,不是很详细,感觉省略了好多重要的东西,即使照着官方文档集成,也可能会有很多莫名其妙的错误!
CSDN上的第三方教程
上面这个是我在CSDN上找到的第三方集成教程,个人感觉比官方文档要全面一些,不过也有一些问题没有细讲,新手在集成过程中难免会有各种疑惑。
楼主也是摸瞎一路采坑过来的,下面是我的集成过程,以及踩过的一些坑,希望对没有接触过阿里百川,但又有如此需求的同学提供一些帮助。
去创建你的应用
- 下载对应的安全图片
注意:
一定要使用gradle3.0以下的编译环境的包,不然会提示“上传失败”(这个坑了我好长时间)。
对应的keystore要一致,不然也是很坑的。
-
申请开通你的电商功能,马上就能通过
下载百川电商SDK
-
添加安全图片xxx.jpg
获得安全图片,并放在/res/drawable目录下,如果已经有安全图片,需要替换。
-
配置项目build.gradle文件
maven { url 'http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/' } classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'//Added line allprojects { repositories { jcenter() maven { url 'https://maven.google.com/' name 'Google' } maven { url 'http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/' } } }
-
配置modle的build.gradle文件
//登陆 implementation 'com.ali.auth.sdk:alibabauth_core:1.4.3@jar' implementation 'com.ali.auth.sdk:alibabauth_ui:1.4.3@aar' implementation 'com.ali.auth.sdk:alibabauth_ext:1.4.3@jar' //【可选】仅供特殊合作伙伴使用 implementation 'com.ali.auth.sdk:alibabauth_accountlink:1.1.4@jar' //安全基础 implementation 'com.taobao.android:securityguardaar3:5.1.81@aar' //【可选】安全高级,如使用了发放红包、优惠券高级功能,则必须引入 implementation 'com.taobao.android:securitybodyaar3:5.1.25@aar' //Mtop网关 implementation 'com.taobao.android:mtopsdk_allinone_open:1.2.2.4@jar' //applink implementation 'com.alibaba.sdk.android:alibc_link_partner:1.1.0.6' //UT // compile 'com.taobao.android:utdid4all:1.1.5.3_proguard@jar' implementation 'com.alibaba.mtl:app-monitor-sdk:2.5.1.3_for_bc_proguard@jar' //联盟SDK implementation 'com.alimama.tunion.sdk:tuniontradesdk:0.3.2@aar' //电商SDK implementation 'com.alibaba.sdk.android:alibc_trade_common:3.1.1.210' implementation 'com.alibaba.sdk.android:alibc_trade_biz:3.1.1.210' implementation 'com.alibaba.sdk.android:alibc_trade_sdk:3.1.1.210' //电商组件&组件容器,一键加购,优惠券相关功能,仅限于微博,优酷,高德等KA合作方调用,需要申请权限 implementation 'com.alibaba.sdk.android:alibc_trade_container:1.0.0.3' //want 电商want组件,一键加购功能(包含 want心智组件UI相关功能) implementation 'com.alibaba.sdk.android:alibc_want:1.0.0.3'
-
配置AndroidManifest.xml
<!--cps--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> tools:replace="android:allowBackup"
-
Proguard 规则
-keepattributes Signature -keep class sun.misc.Unsafe { *; } -keep class com.taobao. {*;} -keep class com.alibaba. {*;} -keep class com.alipay. {*;} -dontwarn com.taobao. -dontwarn com.alibaba. -dontwarn com.alipay. -keep class com.ut. {*;} -dontwarn com.ut. -keep class com.ta. {*;} -dontwarn com.ta. -keep class org.json. {*;} -keep class com.ali.auth. {*;}
-
Application初始化
//电商SDK初始化 AlibcTradeSDK.asyncInit(app, new AlibcTradeInitCallback() { @Override public void onSuccess() { Toast.makeText(app, "初始化成功", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(int code, String msg) { Toast.makeText(app, "初始化失败,错误码="+code+" / 错误消息="+msg, Toast.LENGTH_SHORT).show(); } });
-
销毁
在使用完成后,可以调用destroy方法,释放百川相应的资源引用 AlibcTradeSDK.destroy();
-
业务中的调用
无论是在App内适用WebView,还是直接调起手淘App,都需要适用
AlibcTrade.show()
方法,这个方法里面配置了很多参数,基本决定了你的业务逻辑是否正常,在使用的时候,我们需要根据自己App的业务逻辑,以及要使用的电商模板,分别配置。百川sdk具体的跳转AlibcTrade.show()方法 AlibcTrade.show(context, detailPage, showParams, alibcTaokeParams, exParams, new AlibcTradeCallback() { @Override public void onTradeSuccess(AlibcTradeResult tradeResult) { } @Override public 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如何获取,可以参考图3 也可以点进下面链接,有详细介绍。Android集成常见问题汇总
目前,我们通用的PID是三段式的,如:
mm_xxx_xxx_xxxxx
这其中,“mm”和”_”没什么特别的意义,而后面的三组数字,代表的含义如下:
第一组:代表你的个人身份,一般注册只有就是唯一的,不区分ios和Android
第二组:代表siteid 区分ios和Android,一个备案网站对应一个siteId和一个唯一的apppkey,如:
第三组:代表adzoneid 每创建一个推广位,就会生成一个对应的adzoeid在代码中的配置
AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams(); // adzoneid 为mm_memberId_siteId_adzoneId最后一位 alibcTaokeParams.adzoneid = "54018xxxxxx"; alibcTaokeParams.pid = "mm_11600xxxx_18460xxxx_54018xxxxxx"; alibcTaokeParams.extraParams = new HashMap<>(); alibcTaokeParams.extraParams.put("taokeAppkey", "2523xxxx");
第五个参数不知道具体用法是什么,一般就是如下写法
Map<String, String> exParams = new HashMap<>(); exParams.put("isv_code", "0.0.1"); exParams.put("dxxx", "xxxx");//自定义参数部分,可任意增删改
注意
集成完毕,商品时能够调起手淘app或者能够跳转到webview的淘宝详情页,这只表示你可以集成完事了,但并不代表就没有问题了,在上面的代码中即使不填写taokeappkey和adzoneid,也是可以调起手淘宝app并跳转到淘宝详情页的,但这样购买之后,在淘宝联盟的效果报表中是区分不出来推广渠道的。
刚开始我是通过AlibcPage跳转的, 但是我们app首页有一个足迹导航栏,在淘宝授权后可以直接跳转到自己的足迹Web页面, 但是从足迹跳转web的时候并没有传pid, 明明设置了参数的, 后来改成提取详情页url里面的id, 然后通过AlibcDetailPage来跳转就可以了。
如何感觉集成完全没有问题,此时就可以通过自己的app调起手淘app购买一件商品,然后去淘宝联盟后台–效果报表–淘宝客推广下面,导出excel表格查看。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/164115.html