[M] sync with n3
This commit is contained in:
@@ -5,6 +5,7 @@ using UnityEditor.Callbacks;
|
||||
using UnityEditor.iOS.Xcode;
|
||||
using UnityEditor;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace tysdk.editor
|
||||
{
|
||||
@@ -46,7 +47,7 @@ namespace tysdk.editor
|
||||
string mainContent = File.ReadAllText(mainAppPath);
|
||||
string newContent = mainContent.Replace("#include <UnityFramework/UnityFramework.h>", @"#include ""../UnityFramework/UnityFramework.h""");
|
||||
File.WriteAllText(mainAppPath, newContent);
|
||||
|
||||
|
||||
mainAppPath = Path.Combine(projPath, "Classes", "Preprocessor.h");
|
||||
mainContent = File.ReadAllText(mainAppPath);
|
||||
newContent = mainContent.Replace("#define UNITY_USES_REMOTE_NOTIFICATIONS 0", "#define UNITY_USES_REMOTE_NOTIFICATIONS 1");
|
||||
@@ -74,20 +75,20 @@ namespace tysdk.editor
|
||||
proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC");
|
||||
proj.AddFrameworkToProject(target, "AppTrackingTransparency.framework", false);
|
||||
|
||||
proj.AddFrameworkToProject(target,"StoreKit.framework", false);
|
||||
proj.AddFrameworkToProject(target,"CFNetwork.framework", false);
|
||||
proj.AddFrameworkToProject(target,"CoreTelephony.framework", false);
|
||||
proj.AddFrameworkToProject(target,"Security.framework", false);
|
||||
proj.AddFrameworkToProject(target,"SystemConfiguration.framework", false);
|
||||
proj.AddFrameworkToProject(target,"libc++.tbd", false);
|
||||
proj.AddFrameworkToProject(target,"libsqlite3.tbd", false);
|
||||
proj.AddFrameworkToProject(target,"libz.tbd", false);
|
||||
proj.AddFrameworkToProject(target,"Accelerate.framework", false);
|
||||
proj.AddFrameworkToProject(target,"AuthenticationServices.framework", false);
|
||||
proj.AddFrameworkToProject(target,"SafariServices.framework", false);
|
||||
proj.AddFrameworkToProject(target,"LocalAuthentication.framework", false);
|
||||
proj.AddFrameworkToProject(target,"CoreGraphics.framework", false);
|
||||
proj.AddFrameworkToProject(target,"WebKit.framework", false);
|
||||
proj.AddFrameworkToProject(target, "StoreKit.framework", false);
|
||||
proj.AddFrameworkToProject(target, "CFNetwork.framework", false);
|
||||
proj.AddFrameworkToProject(target, "CoreTelephony.framework", false);
|
||||
proj.AddFrameworkToProject(target, "Security.framework", false);
|
||||
proj.AddFrameworkToProject(target, "SystemConfiguration.framework", false);
|
||||
proj.AddFrameworkToProject(target, "libc++.tbd", false);
|
||||
proj.AddFrameworkToProject(target, "libsqlite3.tbd", false);
|
||||
proj.AddFrameworkToProject(target, "libz.tbd", false);
|
||||
proj.AddFrameworkToProject(target, "Accelerate.framework", false);
|
||||
proj.AddFrameworkToProject(target, "AuthenticationServices.framework", false);
|
||||
proj.AddFrameworkToProject(target, "SafariServices.framework", false);
|
||||
proj.AddFrameworkToProject(target, "LocalAuthentication.framework", false);
|
||||
proj.AddFrameworkToProject(target, "CoreGraphics.framework", false);
|
||||
proj.AddFrameworkToProject(target, "WebKit.framework", false);
|
||||
}
|
||||
|
||||
private static void ProcessPlist(string root)
|
||||
@@ -98,16 +99,20 @@ namespace tysdk.editor
|
||||
PlistElementDict infoDict = plist.root;
|
||||
|
||||
PlistElementArray urlTypesArray = null;
|
||||
if (!infoDict.values.ContainsKey("CFBundleURLTypes")) {
|
||||
if (!infoDict.values.ContainsKey("CFBundleURLTypes"))
|
||||
{
|
||||
urlTypesArray = infoDict.CreateArray("CFBundleURLTypes");
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
urlTypesArray = infoDict.values["CFBundleURLTypes"].AsArray();
|
||||
}
|
||||
|
||||
if (!infoDict.values.ContainsKey("NSUserActivityTypes")) {
|
||||
if (!infoDict.values.ContainsKey("NSUserActivityTypes"))
|
||||
{
|
||||
PlistElementArray userActivityTypes = infoDict.CreateArray("NSUserActivityTypes");
|
||||
userActivityTypes.AddString("INSendMessageIntent");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PlistElementArray userActivityTypes = infoDict.values["NSUserActivityTypes"].AsArray();
|
||||
@@ -115,9 +120,12 @@ namespace tysdk.editor
|
||||
}
|
||||
|
||||
PlistElementArray queriesSchemesArray = null;
|
||||
if (!infoDict.values.ContainsKey("LSApplicationQueriesSchemes")) {
|
||||
if (!infoDict.values.ContainsKey("LSApplicationQueriesSchemes"))
|
||||
{
|
||||
queriesSchemesArray = infoDict.CreateArray("LSApplicationQueriesSchemes");
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
queriesSchemesArray = infoDict.values["LSApplicationQueriesSchemes"].AsArray();
|
||||
}
|
||||
|
||||
@@ -134,8 +142,8 @@ namespace tysdk.editor
|
||||
infoDict.SetBoolean("UIFileSharingEnabled", true);
|
||||
|
||||
// Google
|
||||
string googleClientID = "com.googleusercontent.apps.481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62";
|
||||
CreateURLTypes(urlTypesArray.AddDict(), "google", googleClientID);
|
||||
string googleClientID = "com.googleusercontent.apps.481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62";
|
||||
CreateURLTypes(urlTypesArray.AddDict(), "google", googleClientID);
|
||||
|
||||
//Facebook
|
||||
{
|
||||
@@ -167,19 +175,59 @@ namespace tysdk.editor
|
||||
queriesSchemesArray.AddString("fbapi20150629");
|
||||
queriesSchemesArray.AddString("fbapi20160328");
|
||||
}
|
||||
AddSKAdNetworkIdentifier(infoDict);
|
||||
|
||||
File.WriteAllText(plistPath, plist.WriteToString());
|
||||
}
|
||||
|
||||
private static void CreateURLTypes(PlistElementDict dict, string name, string scheme1)
|
||||
private static void AddSKAdNetworkIdentifier(PlistElementDict infoDict)
|
||||
{
|
||||
dict.SetString("CFBundleTypeRole", "Editor");
|
||||
dict.SetString("CFBundleURLName", name);
|
||||
dict.CreateArray("CFBundleURLSchemes");
|
||||
PlistElementArray schemes = dict.values["CFBundleURLSchemes"].AsArray();
|
||||
|
||||
List<string> skadnetworks = new List<string>() {
|
||||
"22mmun2rn5.skadnetwork", "238da6jt44.skadnetwork", "24t9a8vw3c.skadnetwork", "24zw6aqk47.skadnetwork", "252b5q8x7y.skadnetwork", "275upjj5gd.skadnetwork",
|
||||
"294l99pt4k.skadnetwork", "2fnua5tdw4.skadnetwork", "2u9pt9hc89.skadnetwork", "32z4fx6l9h.skadnetwork", "3l6bd9hu43.skadnetwork", "3qcr597p9d.skadnetwork",
|
||||
"3qy4746246.skadnetwork", "3rd42ekr43.skadnetwork", "3sh42y64q3.skadnetwork", "424m5254lk.skadnetwork", "4468km3ulz.skadnetwork", "44jx6755aq.skadnetwork",
|
||||
"44n7hlldy6.skadnetwork", "47vhws6wlr.skadnetwork", "488r3q3dtq.skadnetwork", "4dzt52r2t5.skadnetwork", "4fzdc2evr5.skadnetwork", "4mn522wn87.skadnetwork",
|
||||
"4pfyvq9l8r.skadnetwork", "4w7y6s5ca2.skadnetwork", "523jb4fst2.skadnetwork", "52fl2v3hgk.skadnetwork", "54nzkqm89y.skadnetwork", "578prtvx9j.skadnetwork",
|
||||
"5a6flpkh64.skadnetwork", "5f5u5tfb26.skadnetwork", "5l3tpt7t6e.skadnetwork", "5lm9lj6jb7.skadnetwork", "5tjdwbrq8w.skadnetwork", "6964rsfnh4.skadnetwork",
|
||||
"6g9af3uyq4.skadnetwork", "6p4ks3rnbw.skadnetwork", "6v7lgmsu45.skadnetwork", "6xzpu9s2p8.skadnetwork", "6yxyv74ff7.skadnetwork", "737z793b9f.skadnetwork",
|
||||
"74b6s63p6l.skadnetwork", "7953jerfzd.skadnetwork", "79pbpufp6p.skadnetwork", "7fmhfwg9en.skadnetwork", "7rz58n8ntl.skadnetwork", "7ug5zh24hu.skadnetwork",
|
||||
"84993kbrcf.skadnetwork", "89z7zv988g.skadnetwork", "8c4e2ghe7u.skadnetwork", "8m87ys6875.skadnetwork", "8r8llnkz5a.skadnetwork", "8s468mfl3y.skadnetwork",
|
||||
"97r2b46745.skadnetwork", "9b89h5y424.skadnetwork", "9g2aggbj52.skadnetwork", "9nlqeag3gk.skadnetwork", "9rd848q2bz.skadnetwork", "9t245vhmpl.skadnetwork",
|
||||
"9vvzujtq5s.skadnetwork", "9yg77x724h.skadnetwork", "a2p9lx4jpn.skadnetwork", "a7xqa6mtl2.skadnetwork", "a8cz6cu7e5.skadnetwork", "av6w8kgt66.skadnetwork",
|
||||
"b9bk5wbcq9.skadnetwork", "bxvub5ada5.skadnetwork", "c3frkrj4fj.skadnetwork", "c6k4g5qg8m.skadnetwork", "cg4yq2srnc.skadnetwork", "cj5566h2ga.skadnetwork",
|
||||
"cp8zw746q7.skadnetwork", "cs644xg564.skadnetwork", "cstr6suwn9.skadnetwork", "cwn433xbcr.skadnetwork", "dbu4b84rxf.skadnetwork", "dkc879ngq3.skadnetwork",
|
||||
"dzg6xy7pwj.skadnetwork", "e5fvkxwrpn.skadnetwork", "ecpz2srf59.skadnetwork", "eh6m2bh4zr.skadnetwork", "ejvt5qm6ak.skadnetwork", "f38h382jlk.skadnetwork",
|
||||
"f73kdq92p3.skadnetwork", "f7s53z58qe.skadnetwork", "feyaarzu9v.skadnetwork", "g28c52eehv.skadnetwork", "g2y4y55b64.skadnetwork", "g6gcrrvk4p.skadnetwork",
|
||||
"ggvn48r87g.skadnetwork", "glqzh8vgby.skadnetwork", "gta8lk7p23.skadnetwork", "gta9lk7p23.skadnetwork", "h65wbv5k3f.skadnetwork", "hb56zgv37p.skadnetwork",
|
||||
"hdw39hrw9y.skadnetwork", "hs6bdukanm.skadnetwork", "k674qkevps.skadnetwork", "k6y4y55b64.skadnetwork", "kbd757ywx3.skadnetwork", "kbmxgpxpgc.skadnetwork",
|
||||
"klf5c3l5u5.skadnetwork", "krvm3zuq6h.skadnetwork", "lr83yxwka7.skadnetwork", "ludvb6z3bs.skadnetwork", "m297p6643m.skadnetwork", "m5mvw97r93.skadnetwork",
|
||||
"m8dbw4sv7c.skadnetwork", "mj797d8u6f.skadnetwork", "mlmmfzh3r3.skadnetwork", "mls7yz5dvl.skadnetwork", "mp6xlyr22a.skadnetwork", "mqn7fxpca7.skadnetwork",
|
||||
"mtkv5xtk9e.skadnetwork", "n38lu8286q.skadnetwork", "n66cz3y3bx.skadnetwork", "n6fk4nfna4.skadnetwork", "n9x2a789qt.skadnetwork", "nzq8sh4pbs.skadnetwork",
|
||||
"p78axxw29g.skadnetwork", "ppxm28t8ap.skadnetwork", "prcb7njmu6.skadnetwork", "pwa73g5rt2.skadnetwork", "pwdxu55a5a.skadnetwork", "qqp299437r.skadnetwork",
|
||||
"qu637u8glc.skadnetwork", "r45fhb6rf7.skadnetwork", "rvh3l7un93.skadnetwork", "rx5hdcabgc.skadnetwork", "s39g8k73mm.skadnetwork", "s69wq72ugq.skadnetwork",
|
||||
"su67r6k2v3.skadnetwork", "t38b2kh725.skadnetwork", "t6d3zquu66.skadnetwork", "tl55sbb4fm.skadnetwork", "tvvz7th9br.skadnetwork", "u679fj5vs4.skadnetwork",
|
||||
"uw77j35x4d.skadnetwork", "v4nxqhlyqp.skadnetwork", "v72qych5uu.skadnetwork", "v79kvwwj4g.skadnetwork", "v9wttpbfk9.skadnetwork", "vcra2ehyfk.skadnetwork",
|
||||
"vutu7akeur.skadnetwork", "w9q455wk68.skadnetwork", "wg4vff78zm.skadnetwork", "wzmmz9fp6w.skadnetwork", "x44k69ngh6.skadnetwork", "x5l83yy675.skadnetwork",
|
||||
"x8jxxk4ff5.skadnetwork", "x8uqf25wch.skadnetwork", "xga6mpmplv.skadnetwork", "xy9t38ct57.skadnetwork", "y45688jllp.skadnetwork", "y5ghdn5j9k.skadnetwork",
|
||||
"yclnxrl5pm.skadnetwork", "ydx93a7ass.skadnetwork", "z24wtl6j62.skadnetwork", "zmvfpc5aq8.skadnetwork", "zq492l623r.skadnetwork"
|
||||
};
|
||||
var items = infoDict.CreateArray("SKAdNetworkItems");
|
||||
var key = "SKAdNetworkIdentifier";
|
||||
foreach (var identifier in skadnetworks)
|
||||
{
|
||||
items.AddDict().SetString(key, identifier);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void CreateURLTypes(PlistElementDict dict, string name, string scheme1)
|
||||
{
|
||||
dict.SetString("CFBundleTypeRole", "Editor"); dict.SetString("CFBundleURLName", name);
|
||||
dict.CreateArray("CFBundleURLSchemes");
|
||||
PlistElementArray schemes = dict.values["CFBundleURLSchemes"].AsArray();
|
||||
schemes.AddString(scheme1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -13,6 +13,12 @@ import com.barton.log.builder.ParamsBuilder;
|
||||
import com.barton.log.ebarton.BaseUrl;
|
||||
import com.barton.log.ebarton.EventType;
|
||||
import com.barton.log.logapi.IGASDK;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.play.core.review.ReviewException;
|
||||
import com.google.android.play.core.review.ReviewInfo;
|
||||
import com.google.android.play.core.review.ReviewManager;
|
||||
import com.google.android.play.core.review.ReviewManagerFactory;
|
||||
import com.google.android.play.core.review.model.ReviewErrorCode;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.tuyoo.gamesdk.api.SDKAPI;
|
||||
@@ -32,7 +38,6 @@ import org.json.JSONObject;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class SDKManager {
|
||||
|
||||
private final static Handler handler = new Handler(Looper.getMainLooper());
|
||||
@@ -41,10 +46,6 @@ public class SDKManager {
|
||||
private static String curType = TuYooClientID.tyGuest;
|
||||
public static void InitSDK(Activity activity)
|
||||
{
|
||||
Log.e(TAG,"SDKManager:::InitSDK");
|
||||
Log.e(TAG,"SDK_APPID:::" + ConfigManager.SDK_APPID);
|
||||
Log.e(TAG,"SDK_CLIENTID:::" + ConfigManager.SDK_CLIENTID);
|
||||
Log.e(TAG,"SDK_LOGIN_SERVER_URL:::" + ConfigManager.SDK_LOGIN_SERVER_URL);
|
||||
activity.runOnUiThread(() -> {
|
||||
SDKAPI.getIns().lightModeEnable();
|
||||
try {
|
||||
@@ -80,7 +81,6 @@ public class SDKManager {
|
||||
userInfoResult.put("result", userInfoReorganization);
|
||||
result.put("respObj", userInfoResult);
|
||||
} else {
|
||||
Log.e(TAG,"errStr:::::" +s);
|
||||
result.put("errStr", s);
|
||||
}
|
||||
|
||||
@@ -105,7 +105,6 @@ public class SDKManager {
|
||||
@Override
|
||||
public void callback(int i, String s) {
|
||||
|
||||
Log.e(TAG,"SDKCallBack.Pay callback: " + i + " \n" + s);
|
||||
SDKLog.i("SDKCallBack.Pay callback: " + i + " \n" + s);
|
||||
try {
|
||||
JSONObject result = new JSONObject();
|
||||
@@ -137,7 +136,6 @@ public class SDKManager {
|
||||
}
|
||||
|
||||
public static void UnityGetIdentityFun(String type) {
|
||||
Log.e(TAG,"UnityGetIdentityFun : " + type);
|
||||
SDKLog.i("UnityGetIdentityFun : " + type);
|
||||
handler.post(new Runnable() {
|
||||
@Override
|
||||
@@ -148,7 +146,6 @@ public class SDKManager {
|
||||
}
|
||||
|
||||
public static void UnityLogin(String type) {
|
||||
Log.e(TAG,"UnityLogin : " + type);
|
||||
SDKLog.i("UnityLogin : " + type);
|
||||
handler.post(new Runnable() {
|
||||
@Override
|
||||
@@ -159,7 +156,6 @@ public class SDKManager {
|
||||
}
|
||||
|
||||
public static void UnityLogOutByChannel(String type) {
|
||||
// Log.e(TAG,"UnityLoginOut!!!");
|
||||
SDKLog.i("UnityLoginOut : ");
|
||||
handler.post(() -> SDKAPI.getIns().logout(type));
|
||||
}
|
||||
@@ -340,7 +336,63 @@ public class SDKManager {
|
||||
paramsBuilder.append(key, map.get(key).toString());
|
||||
}
|
||||
}
|
||||
GetGameGa().track(EventType.TRACK, eventstr, paramsBuilder);
|
||||
// GA_TRACK = 1, //默认类型
|
||||
// GA_CION = 2, //金流相关事件
|
||||
// GA_PAY = 3, //支付相关事件
|
||||
// GA_GAME = 4, //游戏行为
|
||||
// GA_LOGIN = 5, //登录注册相关事件
|
||||
// GA_PUSH = 6, //推送相关事件
|
||||
// GA_ADBOX = 7, //adbox相关事件
|
||||
// GA_PREFORMANCE = 8, //性能上报相关事件
|
||||
// GA_SDK = 9, //SDK相关事件
|
||||
// GA_ABTest = 10, //abtest相关事件
|
||||
|
||||
switch (type)
|
||||
{
|
||||
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.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;
|
||||
case 9:
|
||||
GetGameGa().track(EventType.SDK , eventstr, paramsBuilder);
|
||||
break;
|
||||
default:
|
||||
GetGameGa().track(EventType.TRACK , eventstr, paramsBuilder);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static void Review()
|
||||
{
|
||||
ReviewManager manager = ReviewManagerFactory.create(SDKWrapper.getInstance().getContext());
|
||||
Task<ReviewInfo> request = manager.requestReviewFlow();
|
||||
request.addOnCompleteListener(reqTask -> {
|
||||
if (reqTask.isSuccessful()) {
|
||||
ReviewInfo reviewInfo = reqTask.getResult();
|
||||
Activity activity = UnityPlayer.currentActivity;
|
||||
manager.launchReviewFlow(activity, reviewInfo);
|
||||
} else {
|
||||
@ReviewErrorCode int reviewErrorCode = ((ReviewException) request.getException()).getErrorCode();
|
||||
Log.e(TAG,"Review Error code: " + reviewErrorCode);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <XYSDK/XYSDK.h>
|
||||
#import <GASDK/GAConstants.h>
|
||||
#import <GASDK/GASDK.h>
|
||||
#import <GASDK/GASDK.h>
|
||||
#import "TYConfig.h"
|
||||
|
||||
#define TOKEN_ERROR @"-8"
|
||||
@@ -228,9 +228,10 @@ extern "C" {
|
||||
NSError* err;
|
||||
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
|
||||
if(!err){
|
||||
[[GASDK getGAlog:SDK_PROJECTID] initWithGameId:SDK_GAMEID clientId:SDK_CLIENTID withCommonParams:dic serverUrl:GA_INTERNATIONAL];
|
||||
NSString* nsEvent = [NSString stringWithFormat: @"%s", eventstr];
|
||||
GASDK *gaSDK = [GASDK getGAlog:SDK_PROJECTID];
|
||||
[gaSDK track:dic type:GAEventType(type) event:nsEvent];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void LinkGoogle(const int userId)
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace tysdk
|
||||
#if UNITY_EDITOR || UNITY_ANDROID
|
||||
public static void RequestReview(string customReviewURL)
|
||||
{
|
||||
Debug.Log("RequestReview is not supported on this platform");
|
||||
tysdk.UnityBridgeFunc.Review();
|
||||
}
|
||||
#elif UNITY_IOS
|
||||
[DllImport("__Internal")]
|
||||
|
||||
@@ -3,6 +3,8 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
namespace tysdk
|
||||
{
|
||||
@@ -19,25 +21,22 @@ namespace tysdk
|
||||
=================================================*/
|
||||
|
||||
//public async Task<PaymentInfo> Pay(string prodId, string prodPrice, string prodName, int count, string pType, string price_amount_micros =null)
|
||||
public async Task<PaymentInfo> Pay(SKUDetail prod, int count, float usdprice)
|
||||
public async Task<PaymentInfo> Pay(SKUDetail prod, int count, float usdprice, JObject purchaseInfo)
|
||||
{
|
||||
if (!IsLoggedIn) return new PaymentInfo() { code = "-1", msg = "未登录" };
|
||||
|
||||
var orderId = System.Guid.NewGuid().ToString();
|
||||
|
||||
Dictionary<string, object> extraDic = new Dictionary<string, object>() {
|
||||
{"paytime" , System.DateTime.UtcNow.Ticks},
|
||||
{"sum" , prod.ProdPrice * count},
|
||||
};
|
||||
if(purchaseInfo == null)
|
||||
purchaseInfo = new JObject();
|
||||
|
||||
|
||||
string extraInfo = Newtonsoft.Json.JsonConvert.SerializeObject(extraDic);
|
||||
string extraInfo = purchaseInfo.ToString(Newtonsoft.Json.Formatting.None);
|
||||
//to base64
|
||||
extraInfo = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(extraInfo));
|
||||
extraInfo = Convert.ToBase64String(Encoding.UTF8.GetBytes(extraInfo));
|
||||
Debug.Log("[TYSdk] extraInfo: " + extraInfo);
|
||||
var prodId = prod.ProdID;
|
||||
var prodPrice = usdprice.ToString();
|
||||
var prodName = prod.title;
|
||||
var pType = "googleiab.global.app";
|
||||
|
||||
#if UNITY_EDITOR
|
||||
|
||||
@@ -55,6 +54,8 @@ namespace tysdk
|
||||
|
||||
return result;
|
||||
#elif UNITY_ANDROID
|
||||
|
||||
var pType = "googleiab.global.app";
|
||||
|
||||
var taskSource = new TaskCompletionSource<PaymentInfo>();
|
||||
callbacks.Add("PayResult", (ITYSdkCallback callback) =>
|
||||
|
||||
@@ -36,7 +36,9 @@ namespace tysdk
|
||||
|
||||
public class PaymentInfo : ITYSdkCallback
|
||||
{
|
||||
public bool isSuccess => code == "0";
|
||||
public bool isSuccessFromSdk => code == "0";
|
||||
public bool isSuccess => isSuccessFromSdk && confirmed;
|
||||
private bool confirmed {get; set;} = false;
|
||||
public int count;
|
||||
public string orderId;
|
||||
public string productId;
|
||||
@@ -45,6 +47,15 @@ namespace tysdk
|
||||
public string code;
|
||||
public string msg;
|
||||
|
||||
public bool Check(string orderId, string productId)
|
||||
{
|
||||
confirmed = orderId == this.orderId && productId == this.productId;
|
||||
|
||||
if(!confirmed)
|
||||
UnityEngine.Debug.LogWarning("[TYSdk Pay] order not confirmed");
|
||||
return confirmed;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Newtonsoft.Json.JsonConvert.SerializeObject(this);
|
||||
|
||||
@@ -50,6 +50,8 @@ namespace tysdk
|
||||
|
||||
public static int GetATT() {return 1;}
|
||||
|
||||
public static void Review() { }
|
||||
|
||||
#elif UNITY_ANDROID
|
||||
|
||||
private static string SDK_CLASS = "com.unity3d.player.SDKManager";
|
||||
@@ -195,6 +197,14 @@ namespace tysdk
|
||||
|
||||
public static int GetATT() {return 1;}
|
||||
|
||||
public static void Review()
|
||||
{
|
||||
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
|
||||
{
|
||||
sdkManager.CallStatic("Review");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#elif UNITY_IOS
|
||||
|
||||
|
||||
Reference in New Issue
Block a user