Android 阿里百川cps SDK接入流程

作者: Jinbeen | 来源:发表于2018-01-19 00:41 被阅读387次

    前言

    因公司业务需求,需接入阿里百川SDK和京东联盟cps相关服务,为了跳到淘宝和京东,用户购买后得到佣金。接入过程中遇到很多坑,网上相关资料也甚少,虽然东西不算多,但花了不少时间,在此记录下来,为了以后的人能有个参考。
    这里只跳转到天猫,淘宝的产品详情页,京东产品详情会另做文章分享。

    准备工作

    阿里百川 开发者控制台

    1.申请百川无线应用
    开发者控制台 应用管理

    注意:Android端和IOS端各申请一个应用,虽然会提示名字不能重复但不影响,也是可以正常使用的。

    2.开通业务产品的使用权限
    业务产品的使用权限
    3.获取安全图片
    获取安全图片

    注意:
    1.一定要使用gradle3.0以下的编译环境的包,不然会提示“上传失败”(这个坑了我好长时间)。
    2.对应的keystore要一致,虽然我没有遇到问题,但看到其他人反馈过,小心为妙。

    接入


    下载百川电商SDK
    里面会有很详细的说明,这里只快速的过一遍,总结一下自己遇到的坑及解决方法。

    添加安全图片 yw1222.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文件
    repositories {
    
        maven {
            url "http://mvnrepo.alibaba-inc.com/mvn/repository"
        }
    
        flatDir {
            dirs 'libs'
        }
    }
    
    //fastjson
        compile 'com.alibaba:fastjson:1.2.9'
        //支付
        compile 'com.alibaba.alipay:alipaySingle:20160825@jar'
        //登陆
        compile 'com.ali.auth.sdk:alibabauth_core:1.4.3@jar'
        compile 'com.ali.auth.sdk:alibabauth_ui:1.4.3@aar'
        compile 'com.ali.auth.sdk:alibabauth_ext:1.4.3@jar'
        //安全基础
        compile 'com.taobao.android:securityguardaar3:5.1.81@aar'
        //Mtop网关
        compile 'com.taobao.android:mtopsdk_allinone_open:1.2.2.4@jar'
        //applink
        compile 'com.alibaba.sdk.android:alibc_link_partner:1.1.0.0'
    
        //UT (因为和友盟推送的jar重复,所以去掉,不然会报错!!!)
        //compile 'com.taobao.android:utdid4all:1.1.5.3_proguard@jar'
        compile 'com.alibaba.mtl:app-monitor-sdk:2.5.1.3_for_bc_proguard@jar'
    
        //联盟SDK
        compile 'com.alimama.tunion.sdk:tuniontradesdk:0.3.2'
        //电商SDK
        compile 'com.alibaba.sdk.android:alibc_trade_common:3.1.1.206'
        compile 'com.alibaba.sdk.android:alibc_trade_biz:3.1.1.206'
        compile 'com.alibaba.sdk.android:alibc_trade_sdk:3.1.1.206'
    
    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.**  {*;}
    
    AndroidManifest.xml
    <!--cps-->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    tools:replace="android:allowBackup"
    
    Application初始化
            // AlibcTradeCommon.turnOnDebug();
            // AlibcTradeBiz.turnOnDebug();
            //电商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();
                }
            });
    
    工具类
       private final static String H5 = "H5";
        private final static String TAOBAO = "taobao";
        private final static String TMALL = "tmall";
        private final static String AUTO = "auto";
    
        private static void showDetailPage(Activity activity, String id, String type) {
            AlibcShowParams alibcShowParams;
            switch (type) {
                case H5:
                    alibcShowParams = new AlibcShowParams(OpenType.H5, false);
                    break;
                case TAOBAO:
                    alibcShowParams = new AlibcShowParams(OpenType.Native, false);
                    alibcShowParams.setClientType("taobao_scheme");
                    break;
                case TMALL:
                    alibcShowParams = new AlibcShowParams(OpenType.Native, false);
                    alibcShowParams.setClientType("tmall_scheme");
                    break;
                case AUTO:
                    alibcShowParams = new AlibcShowParams(OpenType.Auto, false);
                    break;
                default:
                    alibcShowParams = new AlibcShowParams(OpenType.Auto, false);
                    break;
            }
            AlibcBasePage alibcBasePage = new AlibcDetailPage(id);
            HashMap<String, String> exParams = new HashMap<>();
            // 固定写法
            exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
    
            // 若非淘客taokeParams设置为null即可   mm_memberId_siteId_adzoneId
            // pid:广告位id
            AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams();
            // adzoneid 为mm_memberId_siteId_adzoneId最后一位
            alibcTaokeParams.adzoneid = "33333";
            alibcTaokeParams.pid = "mm_11111_22222_33333";
            alibcTaokeParams.subPid = "mm_11111_22222_33333";
            alibcTaokeParams.extraParams = new HashMap<>();
            alibcTaokeParams.extraParams.put("taokeAppkey", "xxxxxxx");
    
            AlibcTrade.show(activity, alibcBasePage, alibcShowParams, alibcTaokeParams, exParams, new AlibcTradeCallback() {
                @Override
                public void onTradeSuccess(AlibcTradeResult alibcTradeResult) {
    
                }
    
                @Override
                public void onFailure(int i, String s) {
    //                Toast.makeText(App.getInstance(), "初始化失败,错误码=" + i + " / 错误消息=" + s, Toast.LENGTH_SHORT).show();
                }
            });
        }
    
        /**
         * 跳淘宝详情
         */
        public static void showTaobaoDetail(Activity activity, String id) {
            if (Tools.isApplicationAvilible(activity, "com.taobao.taobao")) {
                showDetailPage(activity, id, TAOBAO);
            } else {
                showDetailPage(activity, id, AUTO);
            }
        }
    
        /**
         * 跳天猫详情
         */
        public static void showTmallDetail(Activity activity, String id) {
            if (Tools.isApplicationAvilible(activity, "com.tmall.wireless")) {
                showDetailPage(activity, id, TMALL);
            } else {
                showDetailPage(activity, id, AUTO);
            }
        }
    
    资源销毁

    在使用完成后,可以调用destroy方法,释放百川相应的资源引用

    AlibcTradeSDK.destroy();
    

    参考

    问题

    • Android 7.0跳天猫产品详情有1/3的时候会有问题,直接跳到天猫的首页,返回的时候才会进入天猫产品详情。且进天猫一定没有返回的小把手显示。其他的Android版本进天猫是正常的,且所有的版本进淘宝没有问题。

    联系我:GitHubhttp://jingbin.me

    相关文章

      网友评论

      • zp_风:我的6.0小米手机跳到天猫也没有返回的小吧手
        Jinbeen:@zp_风 我的也没有,现在天猫没有了,淘宝还有,我们是优先跳淘宝
      • Development小白zz:请问工具类里tools是个什么参数
        Development小白zz:@Jingbin_ 感谢感谢,再请问您一个问题,那个淘宝客的参数adzoneid和taobaokeappkey是从官网获取过来的参数吗
        Jinbeen:@姜小白zz 是判断手机里是否有淘宝或者京东App的,里面的参数是包名。不过这里要注意有些8.0以上手机没有开启获取手机应用列表权限的问题
        Development小白zz:是跳转网址截取过来的头部网址是吧?
      • 27b93bd60192:大神,阿里百川集成不是要低于3.0的吗?您的Android studio是多少?我是Android studio是3.0.1,4.1的在获取安全密钥的时候出问题了
        Jinbeen:@木木9267 只有在获取安全图片的时候需要调整到gradle 3.0以下,开发的时候还是可以用之上的,我是用以前的apk生成的安全图片
        27b93bd60192:@Jingbin_ 那您在开发的时候调整了gragle吗?
        Jinbeen:@木木9267 是的,获取安全图片只能是gradle3.0以下的才行
      • b3b6cbd7e426:你好,我集成了sdk后打开手淘,点击小把手返回但是没有返回自己的app,是什么原因呢
        Jinbeen:@mmakii 这个错很好搞,谷歌一下,很多解决的,应该是Application配置一下
        b3b6cbd7e426:@Jingbin_ 好像是依赖的包少了。不过我把jar包依赖进去就报Multiple dex files define 的错,好像是有包冲突了,你有遇到过么
        Jinbeen:@mmakii 是不是集成有问题,这个我还真没遇到,一般打开是会回到自己应用的,首次打开好像提示要权限,是不是被屏蔽或者忽略了

      本文标题:Android 阿里百川cps SDK接入流程

      本文链接:https://www.haomeiwen.com/subject/lazznxtx.html