update:逻辑更新
This commit is contained in:
@@ -34,12 +34,10 @@ import com.tuyoo.gamesdk.model.InitParam;
|
||||
import com.tuyoo.gamesdk.pay.model.PayType;
|
||||
import com.tuyoo.gamesdk.util.SDKLog;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -57,57 +55,74 @@ public class SDKManager {
|
||||
private static SnsInfo tmpSnsInfo;
|
||||
private static String channel = "GooglePlay";
|
||||
|
||||
// Channel helper
|
||||
public interface ISDKHelper {
|
||||
// Channel SDK adapter
|
||||
public interface IChannelSDKAdapter {
|
||||
void init(Activity activity);
|
||||
}
|
||||
|
||||
public interface IPaymentAdapter {
|
||||
void pay(Activity activity, String productId, String productPrice,
|
||||
String productName, String productCount, String prodorderId,
|
||||
String appInfo);
|
||||
void queryProducts();
|
||||
void consume(String token);
|
||||
}
|
||||
|
||||
private static ISDKHelper sdkHelper;
|
||||
public interface IProductQueryAdapter {
|
||||
void queryProducts();
|
||||
void queryProducts(String productIds);
|
||||
}
|
||||
|
||||
public static void registerHelper(ISDKHelper helper) {
|
||||
sdkHelper = helper;
|
||||
public interface IPendingPurchaseAdapter {
|
||||
String getPendingPurchases();
|
||||
}
|
||||
|
||||
private static IChannelSDKAdapter sdkAdapter;
|
||||
|
||||
public static void queryProductsByIDs(String productIds) {
|
||||
if (sdkAdapter instanceof IProductQueryAdapter) {
|
||||
((IProductQueryAdapter) sdkAdapter).queryProducts(productIds);
|
||||
return;
|
||||
}
|
||||
Log.e(TAG, "queryProductsByIDs: no product query adapter");
|
||||
}
|
||||
|
||||
public static void ConsumePurchase(String token) {
|
||||
Log.i(TAG, "ConsumePurchase: token=" + token);
|
||||
if (sdkHelper != null) {
|
||||
sdkHelper.consume(token);
|
||||
if (sdkAdapter instanceof IPaymentAdapter) {
|
||||
((IPaymentAdapter) sdkAdapter).consume(token);
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetPendingPurchases() {
|
||||
if (sdkAdapter instanceof IPendingPurchaseAdapter) {
|
||||
return ((IPendingPurchaseAdapter) sdkAdapter).getPendingPurchases();
|
||||
}
|
||||
return "[]";
|
||||
}
|
||||
|
||||
public static void CancelBillingFlow() {
|
||||
Log.w(TAG, "CancelBillingFlow");
|
||||
// FlexionSDKService.cancelPurchase();
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Init — with channel helper support
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
public static void InitSDK(Activity activity, String ch) {
|
||||
channel = ChannelHelpers.CHANNEL;
|
||||
ChannelHelpers.register();
|
||||
|
||||
// var builder = SDKManager.ExtendBuilder()
|
||||
// .WithChannel(SDKManagerExt.CHANNEL)
|
||||
// .WithInit(SDKManagerExt.GetInit())
|
||||
// .WithPay(SDKManagerExt.GetPay())
|
||||
// .WithQuery(SDKManagerExt.GetQuery())
|
||||
// .Builder()
|
||||
|
||||
|
||||
|
||||
channel = ChannelEntry.CHANNEL;
|
||||
sdkAdapter = ChannelEntry.createSDKAdapter();
|
||||
|
||||
Log.i(TAG, "[CHANNEL-VERIFY] Java InitSDK channel=" + channel
|
||||
+ " fromCSharp=" + ch
|
||||
+ " helper=" + (sdkHelper != null ? sdkHelper.getClass().getSimpleName() : "default"));
|
||||
+ " adapter=" + (sdkAdapter != null ? sdkAdapter.getClass().getSimpleName() : "default"));
|
||||
|
||||
// Sync channel to C# ChannelConfig
|
||||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME,
|
||||
"SetChannelFromNative", channel);
|
||||
|
||||
// build.init(activity)
|
||||
if (sdkHelper != null) {
|
||||
sdkHelper.init(activity);
|
||||
|
||||
if (sdkAdapter != null) {
|
||||
sdkAdapter.init(activity);
|
||||
} else {
|
||||
initDefault(activity);
|
||||
}
|
||||
@@ -394,7 +409,7 @@ public class SDKManager {
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
public static void UnityKnow(String productId, String productName, String productCount,
|
||||
String prodorderId, String appInfo) {
|
||||
String prodorderId, String appInfo) {
|
||||
SDKLog.i("UnityKnow : " + productId);
|
||||
HashMap<String, String> extraInfo = new HashMap<String, String>();
|
||||
extraInfo.put("appInfo", appInfo);
|
||||
@@ -405,8 +420,8 @@ public class SDKManager {
|
||||
public static void UnityKnowNew(String productId, String productPrice, String productName,
|
||||
String productCount, String prodorderId, String appInfo,
|
||||
String ptype) {
|
||||
if (sdkHelper != null) {
|
||||
sdkHelper.pay(UnityPlayer.currentActivity, productId, productPrice, productName, productCount, prodorderId, appInfo);
|
||||
if (sdkAdapter instanceof IPaymentAdapter) {
|
||||
((IPaymentAdapter) sdkAdapter).pay(UnityPlayer.currentActivity, productId, productPrice, productName, productCount, prodorderId, appInfo);
|
||||
return;
|
||||
}
|
||||
PayEventData.PayData payData = new PayEventData.PayData();
|
||||
@@ -430,9 +445,9 @@ public class SDKManager {
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
public static void thirdExtend() {
|
||||
Log.e(TAG, "thirdExtend called, sdkHelper=" + (sdkHelper != null ? sdkHelper.getClass().getSimpleName() : "null"));
|
||||
if (sdkHelper != null) {
|
||||
sdkHelper.queryProducts();
|
||||
Log.e(TAG, "thirdExtend called, sdkAdapter=" + (sdkAdapter != null ? sdkAdapter.getClass().getSimpleName() : "null"));
|
||||
if (sdkAdapter instanceof IProductQueryAdapter) {
|
||||
((IProductQueryAdapter) sdkAdapter).queryProducts();
|
||||
return;
|
||||
}
|
||||
defaultThirdExtend();
|
||||
@@ -454,7 +469,7 @@ public class SDKManager {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("code", code);
|
||||
if (code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS) {
|
||||
result.put("respObj", ChannelHelpers.normalizeSkuList(msg));
|
||||
result.put("respObj", ChannelEntry.normalizeSkuList(msg));
|
||||
} else {
|
||||
Log.e(TAG, "thirdExtend failed: " + msg);
|
||||
result.put("thirdExtend_errStr", msg);
|
||||
@@ -520,7 +535,7 @@ public class SDKManager {
|
||||
case 2: GetGameGa().track(EventType.COIN, eventstr, paramsBuilder); break;
|
||||
case 3: GetGameGa().track(EventType.PAY, eventstr, paramsBuilder); break;
|
||||
case 4: GetGameGa().track(EventType.GAME, eventstr, paramsBuilder); break;
|
||||
case 5: GetGameGa().track(EventType.PAY, eventstr, paramsBuilder); break;
|
||||
case 5: GetGameGa().track(EventType.LOGIN, eventstr, paramsBuilder); break;
|
||||
case 6: GetGameGa().track(EventType.PUSH, eventstr, paramsBuilder); break;
|
||||
case 7: GetGameGa().track(EventType.ADBOX, eventstr, paramsBuilder); break;
|
||||
case 8: GetGameGa().track(EventType.PREFORMANCE, eventstr, paramsBuilder); break;
|
||||
|
||||
Reference in New Issue
Block a user