阿里百川电商 SDK Android 接入教程 (Kotlin + Android Studio 4.1.2)

备注

网上有很多 Android 接入阿里百川 的文档 & 资料(官方也有接入流程的文档 0 ), 但是他们大多数的都是仅支持 Gradle 3.x 版本, 不支持 最新版本的 Gradle 以及 Android Studio.

申请 百川电商 SDK 权限

前往 阿里百川 开发者控制台 1 申请 百川电商 SDK 的权限。

提示

如果您还没有应用,可以创建应用之后再申请相应的权限。

获取安全图

前往 阿里百川 开发者控制台 1 获取 v5 版本的安全图。

备注

当前 阿里百川 在改版,尚未测试 v6 版本的安全图是否可以正常初始化。

提示

在获取 Android 安全图的时候,需要上传 APK。

这个 APK 使用的 包名(BundleID) 和 签名 必须跟发布的包名和签名一致

也就是说: 您在这儿上传的 APK 必须 使用正式版本的 包名 和 签名。

集成 阿里百川 SDK

修改 gradle 配置

修改 build.gradle 文件 添加 百川的 maven 地址 及 本地库的目录地址:

allprojects {
    repositories {
        google()
        jcenter()
        // 这儿是添加的
        maven {
            url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
        }

        // 如果没有则添加
        flatDir {
            dirs project(':app').file('libs')
        }
    }
}

buildscript {
    // ... other config

    repositories {
        google()
        jcenter()
        // 这儿是添加的
        maven {
            url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
        }
    }

    // ... other config
}

警告

这儿修改的是根目录的 build.gradle 文件, 不是 APP 目录的 build.gradle。

修改 app build.gradle 配置

修改 app 目录中的 build.gradle 配置文件:

警告

signingConfigs 即使在开发的时候也必须配置(Debug 版本), 而且签名配置必须跟正式版的一样,否则会导致阿里百川初始化失败。

dependencies {
    // ... 其他的 SDK 或者依赖

    // 阿里百川 接入文档:
    // https://developer.alibaba.com/docs/doc.htm?treeId=129&articleId=106383&docType=1

    // 下面都是需要添加的

    //支付宝
    implementation 'com.ali.auth.sdk:alibabauth_core:2.0.0.6@aar'
    implementation 'com.ali.auth.sdk:alibabauth_ui:2.0.0.6@aar'
    implementation 'com.ali.auth.sdk:alibabauth_ext:2.0.0.6@aar'

    //支付宝SDK
    implementation(name: "standardcashier-single", version: "15.6.5", ext: "aar")
    compileOnly(name: 'apsecuritysdk-all', version: "3.3.0", ext: 'jar')
    //安全组件
    implementation(name: 'securityguardaar3', version: "5.4.171", ext: 'aar')
    implementation(name: 'securitybodyaar3', version: "5.4.99", ext: 'aar')
    implementation(name: 'avmpaar3', version: "5.4.36", ext: 'aar')
    implementation(name: 'sgmiddletieraar3', version: "5.4.9", ext: 'aar')
    //Mtop
    implementation(name: 'mtopsdk_allinone_open', version: "3.1.2.5", ext: 'jar')
    //applink
    implementation 'com.alibaba.sdk.android:alibc_link_partner:4.1.15@aar'
    //ut(jar包远端依赖)
    implementation 'com.taobao.android:utdid4all:1.5.2'
    implementation 'com.alibaba.mtl:app-monitor-sdk:2.6.4.5_for_bc'
    // 电商基础组件
    implementation 'com.alibaba.sdk.android:AlibcTradeCommon:4.0.0.2@aar'
    implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.2@aar'
    implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.2@aar'

    implementation 'com.alibaba:fastjson:1.2.75'
}

备注

有些人可能已经注意到了,有些 依赖 使用的是本地的包,而不是直接依赖 阿里百川 仓库中的, 这是因为 如果全部直接都使用阿里百川仓库中的包,初始化肯定会失败.

对于这些需要的 jar 离线包,直接从阿里百川仓库中下载就可以了。

个人猜测:可能是阿里百川中心仓库跟最新版的 gradle (4.1) 不兼容导致。

放置 安全图

把 下载的安全图(yw_1222.jpg) 放到 app 的 drawable 目录中。

警告

这儿下载的安全图必须是 Android 版本的安全图。

安全图可以从 阿里百川 开发者控制台 1 下载。

最好写一个 空的 Activity 引用这个安全图,否则打包的时候 安全图有可能被删除掉。

初始化 阿里百川 SDK

在 APP 入口类(继承 Application 的类) 的 onCreate 函数中添加:

AlibcTradeSDK.asyncInit(this, AliBCCallback(this))

备注

AliBCCallback 回调函数需要您自己实现。

重新编译并且运行检测阿里百川是否初始化成功。

提示

最好先 Build Clean 一下,然后再重新编译, 有些时候缓存会造成一些问题。

完整的实现可以参考奇遇淘客 2 .

备注

Proguard 规则使用官方的配置就可以, 参见 0

参考资料

0(1,2)

百川电商SDK3.1接入文档-Android

1(1,2,3)

阿里百川 开发者控制台

2

奇遇淘客 Android