c1_unity/Assets/Scripts/Common/SDK/BFRuPaySDKManager.cs
2025-11-03 10:59:33 +08:00

122 lines
3.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BF
{
public class BFRuPaySDKManager : 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.IsSupportRuPay())
{
return;
}
// 临时屏蔽俄罗斯支付
if (BFPlatform.Identifier == BFPlatform.ANDROID_GP_PACKAGE_NAME_RU)
{
return;
}
Init();
CheckStoreValid();
}
// 初始化
public void Init()
{
BFMain.Instance.SDKMgr.BFNativeSDKMgr.RuInit();
}
// 检测支付可用性
public void CheckStoreValid()
{
BFMain.Instance.SDKMgr.BFNativeSDKMgr.RuCheckValid();
}
public void CheckStoreValidComplete(bool success)
{
StoreValid = success;
}
// 请求全部商品信息
public void QueryProductInfo(string productJson, Action<int, string> callback)
{
luaQueryProductCallback = callback;
BFMain.Instance.SDKMgr.BFNativeSDKMgr.RuGetProducts(productJson, callback);
}
public void QueryProductComplete(bool succ, string result)
{
int code = succ?0:1;
if(luaQueryProductCallback != null)
{
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.RuPurchase(productId, customMsg);
}
public void PayComplete(int code, string result)
{
// 优先当前支付的回调
if(luaPayCallback != null)
{
luaPayCallback(code, result);
luaPayCallback = null;
}
}
// 消耗
public void ConsumePurchase(string token, Action<int> callback)
{
luaConsumeCallback = callback;
BFMain.Instance.SDKMgr.BFNativeSDKMgr.RuConsume(token);
}
public void ConsumeComplete(int code)
{
if (luaConsumeCallback != null)
{
luaConsumeCallback(code);
luaConsumeCallback = null;
}
}
// 查询未完成订单
public void QueryUncompleteOrder(Action<int, string> callback)
{
luaQueryUncompleteOrderCallback = callback;
BFMain.Instance.SDKMgr.BFNativeSDKMgr.RuGetPurchase();
}
public void QueryUncompleteOrderFinish(string result)
{
if(luaQueryUncompleteOrderCallback != null)
{
Action<int, string> tempLuaQueryUncompleteOrderCallback = luaQueryUncompleteOrderCallback;
luaQueryUncompleteOrderCallback = null;
tempLuaQueryUncompleteOrderCallback(0, result);
}
}
}
}