android接入阿里百川商务SDK

发布时间:2025-12-09 21:40:23 浏览次数:4

android接入阿里百川商务SDK

新业务APP是商业APP主要做优惠一块,其中就有接入阿里百川商务SDK的业务,不过本人感觉更像是接入淘宝客。

1.分佣模式

在实际对接中,阿里官方人员明确表示,阿里不支持分佣模式,顾不能够像京东一样直接查询订单数据以及设计分佣比例,明确表明不支持分佣相关,根据实际对接,得到的返利,会直接进入申请APP项目的账号设置的资金账户。

2.类似京东打开首页

根据对接阿里官方不提供,打开首页or打开爱淘宝相关页面,顾android APP出现,使用百川商务sdk打开首页,点击更多,报url无法识别,这里官方人员表示,这里并不提供支持。亲们可以按照API调用相关方法。

3.ES || AS

在开发中,之前项目的架构使用ES,应为一般ES项目都会比AS项目小,但阿里官方明确表明很多的提供给android的包支持or so支持,已经不支持ES,本人也是一个AS新手,一直使用ES的飘过,最近才开始玩AS。

备注:这里本来会有APP在淘宝百川的创建对接过程的,应为保密政策,本人这里就不提供。应为相关信息和法人有关。

4.代码实现

1)环境

在build.gradle中添加阿里百川sdk相关支持

apply plugin: 'com.android.application'android {signingConfigs {debug {//秘钥相关}}compileSdkVersion 23buildToolsVersion '26.0.2'defaultConfig {applicationId "com.ff.demo"minSdkVersion 19targetSdkVersion 23versionCode 6versionName "1.2.1"ndk {//选择要添加的对应cpu类型的.so库。abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a'// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'}multiDexEnabled true}// dexOptions {// javaMaxHeapSize "6g"// }// compileOptions {// sourceCompatibility JavaVersion.VERSION_1_7// targetCompatibility JavaVersion.VERSION_1_7// }buildTypes {release {//暂时不适用混淆minifyEnabled falseshrinkResources false}debug {minifyEnabled falseshrinkResources false}}productFlavors {}}repositories {maven {url "http://mvnrepo.alibaba-inc.com/mvn/repository"}flatDir {dirs 'libs'}}dependencies {//compile fileTree(include: '*.jar', dir: 'libs')testCompile 'junit:junit:4.12'implementation 'com.google.code.gson:gson:2.7'// system// compile 'com.android.support:support-v4:23.0.0'api 'com.android.support:appcompat-v7:23.0.0'//极光推送implementation 'cn.jiguang.sdk:jpush:3.0.5'// 此处以JPush 3.0.5 版本为例。implementation 'cn.jiguang.sdk:jcore:1.1.2'// 此处以JCore 1.1.2 版本为例。//地图compile files('libs/Amap_2DMap_V5.2.0_20170627.jar')compile files('libs/AMap_Location_V3.5.0_20170731.jar')//加密算法// compile files('libs/sm-client-1.0.0.jar')// compile files('libs/bcprov-jdk16-1.46.jar')// compile files('libs/commons-codec-1.8.jar')//加入微信// compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.1.6'//compile files('libs/libammsdk.jar')compile files('libs/wechat-sdk-android-with-mta-1.0.2.jar')//支付compile 'org.greenrobot:eventbus:3.0.0'//数据库访问implementation 'net.zetetic:android-database-sqlcipher:3.5.7@aar'implementation 'com.alibaba:fastjson:1.1.46.android'implementation 'com.squareup.retrofit2:retrofit:2.2.0'implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'implementation 'io.reactivex.rxjava2:rxjava:2.0.1'implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'implementation 'com.github.bumptech.glide:glide:3.7.0'implementation 'org.ligboy.retrofit2:converter-fastjson-android:2.1.0'implementation 'com.squareup.okhttp3:okhttp:3.7.0'implementation 'com.squareup.okio:okio:1.12.0'implementation 'com.squareup.okhttp3:logging-interceptor:3.7.0'//add 开普勒[京东]implementation 'com.google.android.gms:play-services-appindexing:8.1.0'//必须为该版本implementation project(':jdsdk_lib')/**下面为阿里百川*///支付implementation 'com.alibaba.alipay:alipaySingle:20160825@jar'//登陆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.taobao.android:securityguardaar3:5.1.81@aar'//Mtop网关implementation 'com.taobao.android:mtopsdk_allinone_open:1.2.2.4@jar'//applinkimplementation 'com.alibaba.sdk.android:alibc_link_partner:1.1.0.0'//UTimplementation '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'//联盟SDKimplementation 'com.alimama.tunion.sdk:tuniontradesdk:0.3.2'//电商SDKimplementation 'com.alibaba.sdk.android:alibc_trade_common:3.1.1.206'implementation 'com.alibaba.sdk.android:alibc_trade_biz:3.1.1.206'implementation 'com.alibaba.sdk.android:alibc_trade_sdk:3.1.1.206'implementation 'com.android.support:multidex:1.0.1'}

这里比较头疼,弄了很久,下包下载了一晚上,并且还出现一直编译不过,与微信分享支持包冲突的问题,后面更新了最新的包才把这个问题解决,真的弄了很久

根目录下的bulid.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {jcenter()google()maven {url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"}}dependencies {classpath 'com.android.tools.build:gradle:3.0.1'//classpath 'proguard.io:proguard:4.11'//依赖的库类//classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'//Added line}}allprojects {repositories {jcenter()google()maven {url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"}}}task clean(type: Delete) {delete rootProject.buildDir}

这里和官方讲解的有些不同,亲们也可以尝试官方讲解的导入,然而我试了很久都搞不定,顾使用了自己的方法。

2)初始化阿里百川SDK

这里和官网一致

/**** 初始化阿里百川sdk*/private void initAlibcTradeSDK(){//AlibcTradeCommon.turnOnDebug();//AlibcTradeBiz.turnOnDebug();//电商SDK初始化AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() {@Overridepublic void onSuccess() {Logs.d(TAG,"初始化阿里百川成功");// Toast.makeText(RHApplication.this, "初始化成功", Toast.LENGTH_SHORT).show();// Map utMap = new HashMap<>();// utMap.put("debug_api_url","http://muvp.alibaba-inc.com/online/UploadRecords.do");// utMap.put("debug_key","baichuan_sdk_utDetection");// UTTeamWork.getInstance().turnOnRealTimeDebug(utMap);// AlibcUserTracker.getInstance().sendInitHit4DAU("19","3.1.1.100");}@Overridepublic void onFailure(int code, String msg) {//Logs.d(TAG,"初始化阿里百川失败,错误码="+code+" / 错误消息="+msg);}});}

运行,就会打出日志,初始化成功。

3)安全图片导入

忘记说,要把安全图片导入项目了,这里需要从官网下载安全图片,然后把安全图片放入drawable目录下,记住安全图片的名称不能够修改,还需要记住更具包版本选择,不同版本的安全图片,这里需要注意。

我一切代码写好后,发现可以打开页面但登陆授权不会成功,这里对接后,官方回复为,需要申请开通商务sdk权限,然后从新下载安全图片,但是ios是可以的,没有开通权限,也可以授权成功。这里也对接了比较久的时间。

4)HTML调用方法书写

应为我们项目是HTML+原生混合开发,顾本人谢了一个html用来测试,我的方法,我一般都是先把测试界面写好,然后在写原生提供给html的方法哈。

下面奉上自己写的超级简单html的demo页面

<html><head><title>ai</title><script type="text/javascript">//整合测试方法function fqmDemo(){alert("made");//这里调用原生提供给html的百川方法}</script></head><body><p/>下面为natvie js整合测试<p/><button type="submit" onclick="fqmDemo()">测试Native js</button><p/><p/><p/></body></html>

5)阿里百川原生提供html方法

//@JavascriptInterfacepublic void openAliHomeApp() {//打开APpnew AlibcShowParams(OpenType.Auto, false);//设置页面打开方式AlibcShowParams alibcShowParams = alibcShowParams = new AlibcShowParams(OpenType.Native, false);//淘宝协议alibcShowParams.setClientType("taobao_scheme");//下面为淘宝客[不需要修改也不能够修改]AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams(); // 若非淘客taokeParams设置为null即可alibcTaokeParams.adzoneid = "57328044";alibcTaokeParams.pid = "mm_26632322_6858406_23810104";alibcTaokeParams.subPid = "mm_26632322_6858406_23810104";alibcTaokeParams.extraParams = new HashMap<>();alibcTaokeParams.extraParams.put("taokeAppkey", "23373400");//yhhpass参数Map<String, String> exParams = new HashMap<>();exParams.put("isv_code", "appisvcode");exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改if (UserManager.getInstance().getUserInfo() != null && !StringUtlis.isEmpty(UserManager.getInstance().getUserInfo().getTelephone())) {exParams.put("CustomerInfo", UserManager.getInstance().getUserInfo().getTelephone());}AlibcTrade.show(activity, new AlibcPage("https://m.taobao.com/#index"), alibcShowParams, alibcTaokeParams, exParams, new RHTradeCallBack());}/***** 跳转淘宝首页*///@JavascriptInterfacepublic void openAliHomeWeb() {AlibcShowParams alibcShowParams = alibcShowParams = new AlibcShowParams(OpenType.H5, false);//淘宝协议alibcShowParams.setClientType("taobao_scheme");//下面为淘宝客[不需要修改也不能够修改]AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams(); // 若非淘客taokeParams设置为null即可alibcTaokeParams.adzoneid = "57328044";alibcTaokeParams.pid = "mm_26632322_6858406_23810104";alibcTaokeParams.subPid = "mm_26632322_6858406_23810104";alibcTaokeParams.extraParams = new HashMap<>();alibcTaokeParams.extraParams.put("taokeAppkey", "23373400");//yhhpass参数Map<String, String> exParams = new HashMap<>();exParams.put("isv_code", "appisvcode");exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改if (UserManager.getInstance().getUserInfo() != null && !StringUtlis.isEmpty(UserManager.getInstance().getUserInfo().getTelephone())) {exParams.put("CustomerInfo", UserManager.getInstance().getUserInfo().getTelephone());}AlibcTrade.show(activity, new AlibcPage("https://m.taobao.com"), alibcShowParams, alibcTaokeParams, exParams, new RHTradeCallBack());}//授权阿里登陆@JavascriptInterfacepublic void authorAliLogin(final String value){Logs.d(TAG,"--------->authorAliLogin()");AlibcLogin alibcLogin = AlibcLogin.getInstance();alibcLogin.showLogin(new AlibcLoginCallback() {@Overridepublic void onSuccess(int i) {boolean isHavaAli = false;try {if (new File("/data/data/" + "com.taobao.taobao").exists()) {isHavaAli = true;} else {isHavaAli = false;}} catch (Exception e) {isHavaAli = false;}Logs.d(TAG,"alibcLogin isHavaAli:"+isHavaAli);if (isHavaAli) {//打开APpnew AlibcShowParams(OpenType.Auto, false);//设置页面打开方式AlibcShowParams alibcShowParams = alibcShowParams = new AlibcShowParams(OpenType.Native, false);//淘宝协议alibcShowParams.setClientType("taobao_scheme");//下面为淘宝客[不需要修改也不能够修改]AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams(); // 若非淘客taokeParams设置为null即可alibcTaokeParams.adzoneid = "57328044";alibcTaokeParams.pid = "你的pid4";alibcTaokeParams.subPid = "你的Subpid";alibcTaokeParams.extraParams = new HashMap<>();alibcTaokeParams.extraParams.put("taokeAppkey", "23373400");//yhhpass参数Map<String, String> exParams = new HashMap<>();exParams.put("isv_code", "appisvcode");exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改if (UserManager.getInstance().getUserInfo() != null && !StringUtlis.isEmpty(UserManager.getInstance().getUserInfo().getTelephone())) {exParams.put("CustomerInfo", UserManager.getInstance().getUserInfo().getTelephone());}AlibcTrade.show(activity, new AlibcPage("https://ai.m.taobao.com/search.html?&q="+value), alibcShowParams, alibcTaokeParams, exParams, new RHTradeCallBack());} else {//打开网页版AlibcShowParams alibcShowParams = alibcShowParams = new AlibcShowParams(OpenType.H5, false);//淘宝协议alibcShowParams.setClientType("taobao_scheme");//下面为淘宝客[不需要修改也不能够修改]AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams(); // 若非淘客taokeParams设置为null即可alibcTaokeParams.adzoneid = "57328044";alibcTaokeParams.pid = "你的pid";alibcTaokeParams.subPid = "你的subpid4";alibcTaokeParams.extraParams = new HashMap<>();alibcTaokeParams.extraParams.put("taokeAppkey", "23373400");//yhhpass参数Map<String, String> exParams = new HashMap<>();exParams.put("isv_code", "appisvcode");exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改if (UserManager.getInstance().getUserInfo() != null && !StringUtlis.isEmpty(UserManager.getInstance().getUserInfo().getTelephone())) {exParams.put("CustomerInfo", UserManager.getInstance().getUserInfo().getTelephone());}AlibcTrade.show(activity, new AlibcPage("https://ai.m.taobao.com/search.html?&q="+value), alibcShowParams, alibcTaokeParams, exParams, new RHTradeCallBack());}// Toast.makeText(activity, "登录成功 ",// Toast.LENGTH_LONG).show();}@Overridepublic void onFailure(int code, String msg) {Toast.makeText(activity, "登录失败 ",Toast.LENGTH_LONG).show();}});}

6)返利网研究

[1]页面逻辑

返利网为选择淘宝返利之后,会复制关键字到返利网自己的html输入框,然后跳转爱淘宝,会先授权登陆,然后在判断是否安装跳转。

[2]数据值获取

这里返利网跳转爱淘宝之后,html方式这里activity是由app控制的,其中包含标题等,会抓取商家的id以及商品id。

[3]打开淘宝类似京东返回自己APP图片

对接百川sdk之后,打开淘宝,会在淘宝首页有一个图标,和京东看着很像,但是没有我们的APP的名称,只有返回,这里阿里官方表示为,只有参加了内测的商家才能够出现APP名称。

[4]订单如何查询

阿里不会像京东一样提供账单相关接口,我们传给阿里的唯一标识,将会在2月18日将不会再返回,平台会提供订单数据。对表格,需要人为下载。这里好像并不能够区分用户,官方表示不能够区分用户,但是没有实际找不同方法,顾不是很确定。

订单查询接口:

https://www.alimama.com/member/login.htm?forward=http%3A%2F%2Fpub.alimama.com%2Fmyunion.htm%3Fspm%3Da219t.7900221%2F1.1998910419.dbb742793.6d164613GO5J5F#!/report/detail/taoke

下面为订单模板:

其中最后一项,并不能够区分用户哈。

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477