美文网首页
购物BuyerSDK

购物BuyerSDK

作者: 吴彦辉 | 来源:发表于2018-06-14 16:07 被阅读0次

    文档编辑记录

    日期 编辑内容
    2018-7-16 创建文档
    2018-8-6 修改版本、更新文档

    版本

    当前版本号:2.0.6

    更新日志

    版本号 更新内容 日期
    2.0.0 大幅优化用户体验和系统稳定性 2018-7-16
    2.0.6 代码混淆 2018-8-6

    常量定义

    AppConfig.LD_BASE_URL = 基础api地址
    AppConfig.WEEX_URL = weex页面服务器地址
    AppConfig.SHOP_APP_KEY = 购物模块 appKey
    AppConfig.SHOP_BASE_URL = 购物模块基础api地址
    AppConfig.SHOP_MALL_CODE = 购物模块识别码
    AppConfig.API_VERSION = api版本号

    使用

    • 在Application下初始化项目所需组件
      a. 基础初始化
     //初始化 上下文(必须)
    ApplicationUtil.init(this);
     //初始化 缓存控制器(必须)
    LCache.init(this);
    //初始化页面状态控制器(必须)
    PageManager.initInApp(R.layout.empty, R.layout.loading, R.layout.error);
    

    b. 组件初始化

    /**
      网络模块初始化
    */
     public static void initNetModule(Context context) {
            //http 引擎
            OkHttpClient.Builder mBuilder = new OkHttpClient.Builder();
            //打印日志
            mBuilder
                    //请求头(必须设置)
                    .addInterceptor(new BuyerHeaderInterceptot())
                    //  超时时间设置
                    .connectTimeout(15, TimeUnit.SECONDS) 
                    .writeTimeout(15, TimeUnit.SECONDS)
                    .readTimeout(15, TimeUnit.SECONDS);
            //初始化
            LHttp.getInstance().init(context)
                    .setHttpClient(mBuilder.build());
        }
    
        /**
         * 初始化mvp模块
         *
         * @param application 上下文
         */
        public static void initMvpModule(Application application) {
            MvpConfigure.getInstance().init(application)
                    .setResponseErrorListener((context, t) -> {
                        //  网络异常统一处理
                        ExceptionHandle.ResponseThrowable responseThrowable =         
                       ExceptionHandle.handleException(t);
                    })
                    .build();
        }
    
        //扫一扫模块(可选)
         public static void initQR() {
            QRSDK.getInstance().init(new IQRResult() {
                @Override
                public void onSuccess(Context context, int request, String s) {
                    if (request != 0) return;
                    if (RegexUtils.isURL(s)) {
                        IntentRouterUtil.launchWebViewActiivity(context, "", s);
                        return;
                    }
                    //  12 或 13 位的条形码
                    if (RegexUtils.isMatch("^[1-9]\\d{11,12}$", s)) {
                        ShopIntentUtil.launchShopPurchaseActivity(context);
                        return;
                    }
                }
    
                @Override
                public void onFail(Context context) {
    
                }
            });
        }
    
         //weex模块
         public static void initWexModule(Application application) {
         WexSDK.getInstance().init(application,//  上下文
                    !BuildConfig.DEBUG, //是否启用缓存
                    AppConfig.LD_BASE_URL,//api
                    AppConfig.WEEX_URL);// weex url
        }
    
        /**
         * 初始化商城模块
         */
        public static void initShopModule(Application context) {
          //  上下文,appKey,shopApiUrl,mallCode,api版本
           BuyerSDK.init(context, AppConfig.SHOP_APP_KEY,
                    AppConfig.SHOP_BASE_URL, AppConfig.SHOP_MALL_CODE, AppConfig.API_VERSION);
          //支付设置
          //上下文,支付信息,支付方式(wxpay,wxpayh5)
           BuyerSDK.setShopPay((context1, shopPayWxEntity, payType)->{
           })
          //shop登录状态监听
            BuyerSDK.setIShopLoginStatus(new IShopLoginStatus() {
                @Override
                public void loginSuccess(Context context1, IBaseView baseView, String             userKey) {
               //  登录成功
                }
    
                @Override
                public void loginFail(Context context1, IBaseView baseView) {
                   //登录失败
                }
            });
          //shop 点击事件
            BuyerSDK.setShopOnClickListener(new ShopOnClickListerImpl());
    }
    
    • ShopOnClickListerImpl 实现
    
    public class ShopOnClickListerImpl extends ShopOnClickListener {
    
    
        public ShopOnClickListerImpl() {
        }
    
        /**
         * 点击进入聊天界面
         * @param context 上下文
         * @param accountId im用户id
         * @param name 用户名称
         */
        @Override
        public void onMessageClick(Context context, String accountId, String name) {
        }
    
        /**
         * 点击进入聊天界面,携带的是当前 商家店铺信息和商品信息
         * @param context 上下文
         * @param shopProductMessageEntity  商家店铺信息和商品信息
         */
        @Override
        public void onMessageClick(Context context, ShopProductMessageEntity shopProductMessageEntity) {
    
        }
    
        /**
         * 点击进入聊天界面,携带一个订单id
         * @param context 上下文
         * @param accountId 用户id
         * @param name 姓名
         * @param orderId 订单id
         */
        @Override
        public void onMessageClick(Context context, String accountId, String name, String orderId) {
    
        }
    
        /**
         * 过期
         * @param context1 上下文
         * @param url 地址
         */
        @Override
        public void onShopHomeUrlClick(Context context1, String url) {
    
        }
    
        /**
         * 初始化是否免打扰
         * @param button 开关按钮
         * @param accountId 用户id
         */
        @Override
        public void onInitDisturb(SwitchButton button, String accountId) {
        }
    
        /**
         * 初始化是否是置顶
         * @param button 开关按钮
         * @param accountId 用户id
         */
        @Override
        public void onInitConversationTop(SwitchButton button, String accountId) {
        }
    
        /**
         * 查找聊天记录
         * @param activity 上下文
         * @param sessionId 用户id
         * @param name 姓名
         * @param url 头像
         */
        @Override
        public void onSearchChatRecord(Context activity, String sessionId, String name, String url) {
        }
    
        /**
         * 设置用户免打扰
         * @param button 免打扰开关
         * @param sessionId 用户id
         * @param isCheck 是否免打扰
         */
        @Override
        public void onClickDisturb(SwitchButton button, String sessionId, Boolean isCheck) {
        }
    
        /**
         * 设置用户是否置顶
         * @param button 置顶开关
         * @param sessionId 用户id
         * @param isCheck 是否置顶
         */
        @Override
        public void onClickConversationTop(SwitchButton button, String sessionId, Boolean isCheck) {
        }
    
        /**
         *  过期
         * @param sellerMessageEntity 消息体
         */
    
        @Override
        public void onFillSellerMessageEntity(SellerMessageEntity sellerMessageEntity) {
          
        }
    
        /**
         * 取消关注,从消息列表移除
         * @param sessionId 用户id
         */
        @Override
        public void onCancelFavoriteRemoveConversation(String sessionId) {
      }
    
        /**
         * 清除聊天记录
         * @param sessionId 用户id
         */
        @Override
        public void onClearConversation(String sessionId) {
        }
    
    
       //模型扩展点击事件,如果需要调用购物以外的页面可使用到,否则调用默认实现
         @Override
        public void onClickShopMenu(Context context, ShopPluginEntity entity) {
          
        }
    
    }
    

    BuyerSDK方法API

      /**
         * @param context   上下文
         * @param iBaseView view
         *                  购物模块登录
         */
        public static void login(Context context, IBaseView iBaseView) {} 
    
    
        /**
         * 设置用户信息
         * @param userLoginRequestEntity 用户登录信息
         */
        public static void setLoginUserInfo(BuyUserLoginRequestEntity userLoginRequestEntity) {}
    
         /**
         * buyer 用户退出登录(app退出登录后,必须执行)
         */
        public static void buyerLoginOut() {}
    
     /**
         * @param accountId   userId
         * @param iShopSeller 商家菜单对象
         *                    是否是商家,并返回商家底部菜单,用于im
         */
        public static void isShopSeller(String accountId, IShopSeller iShopSeller) {
    
        }
    
    
        /**
         * @param currentCommunity 当前社区对象
         *                         会刷新社区下的插件
         */
        public static void setCurrentCommunityNotifyPlugin(CommunityEntity currentCommunity) {
           
        }
    
        /**
         * @param communityId 社区id
         * @param listener    获取社区插件
         */
        public static void getBuyerPluginList(String communityId, OnShopPluginListCallBackListener listener) {
    
        }
    
        /**
         * @param currentCommunity 当前社区对象
         *                         设置当前社区
         */
        public static void setCurrentCommunity(CommunityEntity currentCommunity) {
    
      
        }
    
        /**
         * @return 获取当前社区
         */
        public static CommunityEntity getCurrentCommunity() {
    
        }
    
    
        /**
         * 同步buyer数据,进入app必须调用一次
         */
        public static void syncBuyerData() {
    
        }
    
      /**
         * 获取热词
         */
        public static void syncProductHotWords() {
    
        }
    
        /**
         * 同步购物车数据,进入app必须调用一次
         */
        public static void syncBuyerCarData() {
    
        }
    
    

    ⚠️特别注意

    1、!!!购物模块高度依赖参数:userKey,所以要保证购物模块登录接口的准确性
    2、敏感数据请参见其它文档

    相关文章

      网友评论

          本文标题:购物BuyerSDK

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