124 lines
3.2 KiB
C#
124 lines
3.2 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace BF
|
|
{
|
|
public class BFHWPaySDKManager : MonoBehaviour
|
|
{
|
|
public Action<int, string> luaPayCallback;
|
|
public Action<int, string> luaQueryProductCallback;
|
|
public Action<int, string> luaQueryUncompleteOrderCallback;
|
|
public Action<int> luaConsumeCallback;
|
|
public bool StoreValid { get; private set; }
|
|
private string ProductJson;
|
|
|
|
void Start()
|
|
{
|
|
// 俄罗斯华为渠道专用支付
|
|
if (!BFPlatform.IsSupportHWPay())
|
|
{
|
|
return;
|
|
}
|
|
|
|
Init();
|
|
CheckStoreValid();
|
|
}
|
|
|
|
// 初始化
|
|
public void Init()
|
|
{
|
|
// BFMain.Instance.SDKMgr.BFNativeSDKMgr.RuInit();
|
|
}
|
|
|
|
// 检测支付可用性
|
|
public void CheckStoreValid()
|
|
{
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.HWCheckValid();
|
|
}
|
|
|
|
public void CheckStoreValidComplete(bool success)
|
|
{
|
|
StoreValid = success;
|
|
}
|
|
|
|
// 请求全部商品信息
|
|
public void QueryProductInfo(string productJson, Action<int, string> callback)
|
|
{
|
|
luaQueryProductCallback = callback;
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.HWGetProducts(productJson, callback);
|
|
}
|
|
|
|
public void QueryProductComplete(bool succ, string result)
|
|
{
|
|
Debug.Log("C# call QueryProductComplete");
|
|
int code = succ?0:1;
|
|
if(luaQueryProductCallback != null)
|
|
{
|
|
Debug.Log("C# call QueryProductComplete result = " + result + " code = " + code);
|
|
Action<int, string> tempLuaQueryProductCallback = luaQueryProductCallback;
|
|
luaQueryProductCallback = null;
|
|
tempLuaQueryProductCallback(code, result);
|
|
ProductJson = string.Empty;
|
|
}
|
|
}
|
|
|
|
// 支付
|
|
public void Pay(string payType, string productId, string customMsg, Action<int, string> callback)
|
|
{
|
|
luaPayCallback = callback;
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.HWPurchase(productId, customMsg);
|
|
}
|
|
|
|
public void PayComplete(int code, string result)
|
|
{
|
|
Debug.Log("C# call PayComplete");
|
|
// 优先当前支付的回调
|
|
if(luaPayCallback != null)
|
|
{
|
|
Debug.Log("C# call PayComplete result = " + result + " code = " + code);
|
|
luaPayCallback(code, result);
|
|
luaPayCallback = null;
|
|
}
|
|
}
|
|
|
|
// 消耗
|
|
public void ConsumePurchase(string token, Action<int> callback)
|
|
{
|
|
luaConsumeCallback = callback;
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.HWConsume(token);
|
|
}
|
|
|
|
public void ConsumeComplete(int code)
|
|
{
|
|
Debug.Log("C# call ConsumeComplete");
|
|
if (luaConsumeCallback != null)
|
|
{
|
|
Debug.Log("C# call ConsumeComplete code = " + code);
|
|
luaConsumeCallback(code);
|
|
luaConsumeCallback = null;
|
|
}
|
|
}
|
|
|
|
// 查询未完成订单
|
|
public void QueryUncompleteOrder(Action<int, string> callback)
|
|
{
|
|
luaQueryUncompleteOrderCallback = callback;
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.HWGetPurchase();
|
|
}
|
|
|
|
public void QueryUncompleteOrderFinish(string result)
|
|
{
|
|
Debug.Log("C# call QueryUncompleteOrderFinish");
|
|
if(luaQueryUncompleteOrderCallback != null)
|
|
{
|
|
Debug.Log("C# call QueryUncompleteOrderFinish result = " + result);
|
|
Action<int, string> tempLuaQueryUncompleteOrderCallback = luaQueryUncompleteOrderCallback;
|
|
luaQueryUncompleteOrderCallback = null;
|
|
tempLuaQueryUncompleteOrderCallback(0, result);
|
|
}
|
|
}
|
|
}
|
|
}
|