[WIP] SKU list

This commit is contained in:
2024-08-08 19:41:07 +08:00
parent e058996e29
commit b427979811
6 changed files with 52 additions and 19 deletions

View File

@@ -96,7 +96,7 @@ public class SDKTest : MonoBehaviour
public async void OnPayListBtn()
{
Debug.LogError("PayList ask");
var result = await TYSdkFacade.Instance.ThirdExtend();
var result = await TYSdkFacade.Instance.GetSKUList();
}
public void OnGaBtn()

View File

@@ -22,7 +22,7 @@ public class ConfigManager {
public static final String UNITY_FACADE_NAME = "TYSdkFacade";
public static final String LOGIN_CALLBACK_FUNCTION_NAME = "LoginResult";
public static final String PAY_CALLBACK_FUNCTION_NAME = "PayResult";
public static final String PAY_TYPE_CALLBACK_FUNCTION_NAME = "PayTypeResult";
public static final String PAY_TYPE_CALLBACK_FUNCTION_NAME = "GetSKUList";
public static final String FCM_NOTICE_FUNCTION_NAME = "FCMCallback";
public static final String FCM_REALNAME_CALLBACK_FUNCTION_NAME = "RealNameCallback";

View File

@@ -144,6 +144,30 @@ extern "C" {
}];
}
void GetSKUList()
{
NSLog(@"TYSdkInterface GetSKUList ");
[XYApi XYGetLocalProductPriceWithCompletion:^(XYResp * _Nonnull resp) {
NSMutableDictionary *resultDict = [@{} mutableCopy];
[resultDict setValue:[NSString stringWithFormat:@"%ld", (long)resp.errCode] forKey:@"code"];
if(resp.errCode == XYSuccess){
NSLog(@"TYSdkInterface GetSKUList Success");
NSLog(@"SKUList %@", resp.respObj);
[resultDict setValue:resp.respObj forKey:@"respObj"];
}
else
{
NSLog(@"TYSdkInterface GetSKUList Faild");
NSLog(@"SKUList %@", resp.errCode);
}
NSString *result = DicTojsonString(resultDict);
const char* param = AllocCString(result);
UnitySendMessage("TYSdkFacade","SKUListResult", param);
}];
}
//打点
void SetGaUserInfo(const char* userId)
{

View File

@@ -93,22 +93,22 @@ namespace tysdk
}
// Get Pay list
public async Task<SKUDetail> ThirdExtend()
public async Task<List<SKUDetail>> GetSKUList()
{
if (!IsLoggedIn) return new SKUDetail() { code = "-1", msg = "未登录" };
if (!IsLoggedIn) return null;
#if UNITY_EDITOR || UNITY_IOS
#if UNITY_EDITOR
await Task.Yield();
var result = new SKUDetail();
return result;
#elif UNITY_ANDROID
return null;
#elif UNITY_ANDROID || UNITY_IOS
var taskSource = new TaskCompletionSource<SKUDetail>();
callbacks.Add("PayTypeResult", (ITYSdkCallback callback) =>
var taskSource = new TaskCompletionSource<List<SKUDetail>>();
callbacks.Add("SKUList", (ITYSdkCallback callback) =>
{
taskSource.SetResult((SKUDetail)callback);
taskSource.SetResult((List<SKUDetail>)callback);
});
UnityBridgeFunc.ThirdExtend();
UnityBridgeFunc.GetSKUList();
var result = await taskSource.Task;
return result;
@@ -116,9 +116,9 @@ namespace tysdk
}
//商品列表的回调
public void PayTypeResult(string json)
public void SKUListResult(string json)
{
Debug.Log("[thirdExtend] pay callback:");
Debug.Log("[TYSdkFacade] GetSKUList callback:");
var jresult = JObject.Parse(json);
var result = new SKUDetail();
result.code = jresult["code"].ToString();
@@ -126,8 +126,8 @@ namespace tysdk
if (callbacks.TryGetValue("PayTypeResult", out var action))
{
action.Invoke(result);
callbacks.Remove("PayTypeResult");
action.Invoke(new SKUList());
callbacks.Remove("SKUList");
}
}
}

View File

@@ -43,7 +43,7 @@ namespace tysdk
}
}
public class SKUDetail: ITYSdkCallback
public class SKUDetail
{
public string code;
public string msg;
@@ -55,6 +55,11 @@ namespace tysdk
public string currency_code;
}
public class SKUList: ITYSdkCallback
{
public System.Collections.Generic.List<SKUDetail> list;
}
public class ATTInfo : ITYSdkCallback
{
public bool isAccepted;

View File

@@ -31,7 +31,7 @@ namespace tysdk
string productCount, string prodorderId, string appInfo){}
//获取商品列表
public static void ThirdExtend() { }
public static void GetSKUList() { }
//打点
public static void SetGaUserInfo(string userId){}
@@ -148,7 +148,7 @@ namespace tysdk
}
//获取商品列表
public static void ThirdExtend()
public static void GetSKUList()
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
@@ -243,6 +243,10 @@ namespace tysdk
public static extern void UnityKnow(string userId, string productId, string productPrice, string productName,
string productCount, string prodorderId, string appInfo);
//获取商品列表
[DllImport("__Internal")]
public static extern void GetSKUList();
//打点
[DllImport("__Internal")]
public static extern void SetGaUserInfo(string userId);