using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BF { public class BFPaySDKManager : MonoBehaviour { public Action luaPayCallback; public Action luaDelayPayCallback; public Action luaQueryProductCallback; public Action luaQueryUncompleteOrderCallback; public Action luaQuerySubscribeInfoCallback; public Action luaConnectGoogleStoreCallback; public Action luaConsumeCallback; public bool ConnectStoreSucc { get; private set; } private string googlePayType; private string googleProductJson; void Start() { // 俄罗斯渠道不使用google if (BFPlatform.IsSupportRuPay()) { return; } Init(); } public void Init() { // google BFMain.Instance.SDKMgr.BFNativeSDKMgr.InitGooglePay(); } public void GoogleStoreConnectComplete(bool success) { ConnectStoreSucc = success; if(luaConnectGoogleStoreCallback != null) { int code = success?0:1; luaConnectGoogleStoreCallback(code); luaConnectGoogleStoreCallback = null; } if (ConnectStoreSucc && luaQueryProductCallback != null && !string.IsNullOrEmpty(googlePayType) && !string.IsNullOrEmpty(googleProductJson)) { BFMain.Instance.SDKMgr.BFNativeSDKMgr.QueryGoogleProductInfo(googlePayType, googleProductJson); } } public void Pay(string payType, string productId, string customMsg, Action callback) { luaPayCallback = callback; BFMain.Instance.SDKMgr.BFNativeSDKMgr.GooglePay(payType, productId, customMsg); } public void GooglePayComplete(int code, string result) { // 优先当前支付的回调 if(luaPayCallback != null) { luaPayCallback(code, result); luaPayCallback = null; } else if (luaDelayPayCallback != null) { // 延迟到账的回调 luaDelayPayCallback(code, result); } } // 设置延迟到账回调 public void SetGoogleDelayPayCallback(Action callback) { luaDelayPayCallback = callback; } public void ConsumePurchase(string token, Action callback) { luaConsumeCallback = callback; BFMain.Instance.SDKMgr.BFNativeSDKMgr.ConsumePurchase(token); } public void GoogleConsumeComplete(int code) { if (luaConsumeCallback != null) { luaConsumeCallback(code); luaConsumeCallback = null; } } public void ConnectGoogleStore(Action callback) { luaConnectGoogleStoreCallback = callback; BFMain.Instance.SDKMgr.BFNativeSDKMgr.ConnectGoogleStore(); } public void QueryProductInfo(string payType, string productJson, Action callback) { luaQueryProductCallback = callback; if (ConnectStoreSucc) { BFMain.Instance.SDKMgr.BFNativeSDKMgr.QueryGoogleProductInfo(payType, productJson); } else { googlePayType = payType; googleProductJson = productJson; BFMain.Instance.SDKMgr.BFNativeSDKMgr.ConnectGoogleStore(); } } public void QueryProductOver(bool succ, string result) { int code = succ?0:1; if(luaQueryProductCallback != null) { Action tempLuaQueryProductCallback = luaQueryProductCallback; luaQueryProductCallback = null; tempLuaQueryProductCallback(code, result); googlePayType = string.Empty; googleProductJson = string.Empty; } } public void QueryUncompleteOrder(string payType, Action callback) { luaQueryUncompleteOrderCallback = callback; BFMain.Instance.SDKMgr.BFNativeSDKMgr.QueryUncompleteOrder(payType); } public void QueryUncompleteOrderFinish(string result) { if(luaQueryUncompleteOrderCallback != null) { Action tempLuaQueryUncompleteOrderCallback = luaQueryUncompleteOrderCallback; luaQueryUncompleteOrderCallback = null; tempLuaQueryUncompleteOrderCallback(0, result); } } public void QuerySubscribeInfo(string payType, Action callback) { luaQuerySubscribeInfoCallback = callback; BFMain.Instance.SDKMgr.BFNativeSDKMgr.QuerySubscribeInfo(payType); } public void QuerySubscribeInfoFinish(string result) { if(luaQuerySubscribeInfoCallback != null) { luaQuerySubscribeInfoCallback(0, result); luaQuerySubscribeInfoCallback = null; } } } }