using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BF { public class BFHWPaySDKManager : MonoBehaviour { public Action luaPayCallback; public Action luaQueryProductCallback; public Action luaQueryUncompleteOrderCallback; public Action 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 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 tempLuaQueryProductCallback = luaQueryProductCallback; luaQueryProductCallback = null; tempLuaQueryProductCallback(code, result); ProductJson = string.Empty; } } // 支付 public void Pay(string payType, string productId, string customMsg, Action 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 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 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 tempLuaQueryUncompleteOrderCallback = luaQueryUncompleteOrderCallback; luaQueryUncompleteOrderCallback = null; tempLuaQueryUncompleteOrderCallback(0, result); } } } }