package com.tejia.lijin.app.util.goods;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.view.View;
|
import android.webkit.WebChromeClient;
|
import android.webkit.WebViewClient;
|
import android.widget.Toast;
|
|
import com.alibaba.baichuan.android.trade.AlibcTradeSDK;
|
import com.alibaba.baichuan.android.trade.model.AlibcShowParams;
|
import com.alibaba.baichuan.android.trade.model.OpenType;
|
import com.alibaba.baichuan.android.trade.page.AlibcDetailPage;
|
import com.alibaba.baichuan.trade.biz.AlibcConstants;
|
import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType;
|
import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams;
|
import com.alibaba.baichuan.trade.biz.login.AlibcLogin;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.entity.TbPidInfo;
|
import com.tejia.lijin.app.entity.common.GoodsConvertLinkJumpLink;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityJD;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityPDD;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivitySuning;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityTB;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityVIP;
|
import com.tejia.lijin.app.util.Constant;
|
import com.tejia.lijin.app.util.GoodsBuyJumpUtil;
|
import com.tejia.lijin.app.util.baichuan.AlibcTradeUtil;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
import com.wpc.library.util.common.StringUtils;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
public class GoodsBuyUtil {
|
|
|
/**
|
* 商品购买
|
* @param activity
|
* @param context
|
* @param requestInfo
|
* @param resultListener
|
*/
|
public static void buy(Activity activity, Context context, GoodsBuyRequestInfo requestInfo, IBuyGoodsResultListener resultListener) {
|
|
switch (requestInfo.getGoodsType()) {
|
case Constant.GOODS_TYPE_TB:
|
buyTB(activity, context, requestInfo, resultListener);
|
break;
|
case Constant.GOODS_TYPE_JD:
|
buyJD(activity, requestInfo, resultListener);
|
break;
|
case Constant.GOODS_TYPE_PDD:
|
buyPDD(context, requestInfo, resultListener);
|
break;
|
case Constant.GOODS_TYPE_VIP:
|
buyVIP(context, requestInfo, resultListener);
|
break;
|
case Constant.GOODS_TYPE_SUNING:
|
buySuning(context, requestInfo, resultListener);
|
break;
|
}
|
|
}
|
|
|
/**
|
* 打开指定链接
|
*/
|
private static void jumpTB(Activity activity, TbPidInfo tInfo, String clickUrl, String couponUrl, final IBuyGoodsResultListener buyGoodsResultListener) {
|
AlibcShowParams alibcShowParams = new AlibcShowParams();
|
alibcShowParams.setOpenType(OpenType.Auto);
|
alibcShowParams.setBackUrl("alisdk://");
|
alibcShowParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpBROWER);
|
AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams("", "", "");
|
if (tInfo != null) {
|
alibcTaokeParams = new AlibcTaokeParams("", "", "");
|
alibcTaokeParams.setPid(tInfo.getPid());
|
alibcTaokeParams.setAdzoneid(tInfo.getAdZoneId());
|
alibcTaokeParams.pid = tInfo.getPid();
|
alibcTaokeParams.adzoneid = tInfo.getAdZoneId();
|
alibcTaokeParams.extraParams = new HashMap<>();
|
alibcTaokeParams.extraParams.put("taokeAppkey", tInfo.getAppKey());
|
}
|
Map<String, String> exParams = new HashMap<>();
|
exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
|
exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改
|
if (!StringUtils.isEmpty(clickUrl) || !StringUtils.isEmpty(couponUrl)) {
|
String url = (!StringUtils.isEmpty(couponUrl)) ? couponUrl : clickUrl;
|
AlibcTradeSDK.setTaokeParams(alibcTaokeParams);
|
buyGoodsResultListener.onJumpThirdAppStart();
|
AlibcTradeUtil.openByUrl(activity,
|
url, null, new WebViewClient(), new WebChromeClient(),
|
alibcShowParams, alibcTaokeParams, null);
|
}
|
}
|
|
|
private static void buyTB(final Activity activity, final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) {
|
ShoppingApi.getTBLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
TbPidInfo tInfo = null;
|
String clickUrl = null;
|
String couponUrl = null;
|
if (jsonObject.optJSONObject("data").optJSONObject("tbPidInfo") != null)
|
tInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("tbPidInfo").toString(), TbPidInfo.class);
|
|
JSONObject object = jsonObject.optJSONObject("data").optJSONObject("link");
|
if (object != null) {
|
clickUrl = object.optString("clickUrl");
|
couponUrl = object.optString("couponUrl");
|
}
|
buyGoodsResultListener.onConvertLinkSuccess();
|
jumpTB(activity, tInfo, clickUrl, couponUrl, buyGoodsResultListener);
|
} else {
|
buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
buyGoodsResultListener.onConvertLinkFail("请求网络出错");
|
}
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
buyGoodsResultListener.onConvertLinkStart();
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
buyGoodsResultListener.onConvertLinkComplete();
|
}
|
});
|
}
|
|
|
private static void buyJD(final Activity activity, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) {
|
ShoppingApi.getJDLinkInfo(activity, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", requestInfo.getCouponLink(), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
GoodsConvertLinkJumpLink jumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class);
|
buyGoodsResultListener.onJumpThirdAppStart();
|
GoodsBuyJumpUtil.jumpJD(activity, jumpLink, new GoodsBuyJumpUtil.IJumpResult() {
|
|
@Override
|
public void onSuccess() {
|
buyGoodsResultListener.onJumpThirdAppSuccess();
|
}
|
|
@Override
|
public void onFail(String msg) {
|
buyGoodsResultListener.onJumpThirdAppFail();
|
}
|
});
|
} else {
|
buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
buyGoodsResultListener.onConvertLinkFail("请求网络出错");
|
}
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
buyGoodsResultListener.onConvertLinkStart();
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
buyGoodsResultListener.onConvertLinkComplete();
|
}
|
});
|
}
|
|
|
private static void buyPDD(final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) {
|
ShoppingApi.getPDDLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
GoodsConvertLinkJumpLink pddJumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class);
|
buyGoodsResultListener.onJumpThirdAppStart();
|
GoodsBuyJumpUtil.jumpPDD(context, pddJumpLink);
|
} else {
|
buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
buyGoodsResultListener.onConvertLinkFail("请求网络出错");
|
}
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
buyGoodsResultListener.onConvertLinkStart();
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
buyGoodsResultListener.onConvertLinkComplete();
|
}
|
});
|
}
|
|
private static void buyVIP(final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) {
|
ShoppingApi.getVIPLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
GoodsConvertLinkJumpLink jumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class);
|
buyGoodsResultListener.onJumpThirdAppStart();
|
GoodsBuyJumpUtil.jumpVIPShop(context, jumpLink);
|
} else {
|
buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
buyGoodsResultListener.onConvertLinkFail("请求网络出错");
|
}
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
buyGoodsResultListener.onConvertLinkStart();
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
buyGoodsResultListener.onConvertLinkComplete();
|
}
|
});
|
|
}
|
|
|
private static void buySuning(final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) {
|
ShoppingApi.getSuningLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
GoodsConvertLinkJumpLink jumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class);
|
buyGoodsResultListener.onJumpThirdAppStart();
|
GoodsBuyJumpUtil.jumpSuning(context, jumpLink);
|
} else {
|
buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
buyGoodsResultListener.onConvertLinkFail("请求网络出错");
|
}
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
buyGoodsResultListener.onConvertLinkStart();
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
buyGoodsResultListener.onConvertLinkComplete();
|
}
|
});
|
}
|
|
|
|
/**
|
* 商品购买请求参数
|
*/
|
static class GoodsBuyRequestInfo {
|
private int goodsType;
|
private String goodsId;
|
private String couponLink;
|
private String uid;
|
private String from;
|
|
|
public int getGoodsType() {
|
return goodsType;
|
}
|
|
public void setGoodsType(int goodsType) {
|
this.goodsType = goodsType;
|
}
|
|
public String getGoodsId() {
|
return goodsId;
|
}
|
|
public void setGoodsId(String goodsId) {
|
this.goodsId = goodsId;
|
}
|
|
public String getCouponLink() {
|
return couponLink;
|
}
|
|
public void setCouponLink(String couponLink) {
|
this.couponLink = couponLink;
|
}
|
|
public String getUid() {
|
return uid;
|
}
|
|
public void setUid(String uid) {
|
this.uid = uid;
|
}
|
|
public String getFrom() {
|
return from;
|
}
|
|
public void setFrom(String from) {
|
this.from = from;
|
}
|
}
|
|
|
public static interface IBuyGoodsResultListener {
|
|
public void onConvertLinkStart();
|
|
public void onConvertLinkSuccess();
|
|
public void onConvertLinkFail(String msg);
|
|
public void onConvertLinkComplete();
|
|
public void onJumpThirdAppStart();
|
|
public void onJumpThirdAppSuccess();
|
|
public void onJumpThirdAppFail();
|
|
}
|
|
|
}
|