155 lines
5.2 KiB
C#
155 lines
5.2 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace BF
|
|
{
|
|
public class BFPaySDKManager : MonoBehaviour
|
|
{
|
|
public Action<int, string> luaPayCallback;
|
|
public Action<int, string> luaDelayPayCallback;
|
|
public Action<int, string> luaQueryProductCallback;
|
|
public Action<int, string> luaQueryUncompleteOrderCallback;
|
|
public Action<int, string> luaQuerySubscribeInfoCallback;
|
|
public Action<int> luaConnectGoogleStoreCallback;
|
|
public Action<int> luaConsumeCallback;
|
|
public bool ConnectStoreSucc { get; private set; }
|
|
private string googlePayType;
|
|
private string googleProductJson;
|
|
|
|
void Start()
|
|
{
|
|
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<int, string> 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<int, string> callback)
|
|
{
|
|
luaDelayPayCallback = callback;
|
|
}
|
|
|
|
public void ConsumePurchase(string token, Action<int> 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<int> callback)
|
|
{
|
|
luaConnectGoogleStoreCallback = callback;
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.ConnectGoogleStore();
|
|
}
|
|
|
|
public void QueryProductInfo(string payType, string productJson, Action<int, string> 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<int, string> tempLuaQueryProductCallback = luaQueryProductCallback;
|
|
luaQueryProductCallback = null;
|
|
tempLuaQueryProductCallback(code, result);
|
|
googlePayType = string.Empty;
|
|
googleProductJson = string.Empty;
|
|
}
|
|
}
|
|
|
|
public void QueryUncompleteOrder(string payType, Action<int, string> callback)
|
|
{
|
|
luaQueryUncompleteOrderCallback = callback;
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.QueryUncompleteOrder(payType);
|
|
}
|
|
|
|
public void QueryUncompleteOrderFinish(string result)
|
|
{
|
|
if(luaQueryUncompleteOrderCallback != null)
|
|
{
|
|
Action<int, string> tempLuaQueryUncompleteOrderCallback = luaQueryUncompleteOrderCallback;
|
|
luaQueryUncompleteOrderCallback = null;
|
|
tempLuaQueryUncompleteOrderCallback(0, result);
|
|
}
|
|
}
|
|
|
|
public void QuerySubscribeInfo(string payType, Action<int, string> callback)
|
|
{
|
|
luaQuerySubscribeInfoCallback = callback;
|
|
BFMain.Instance.SDKMgr.BFNativeSDKMgr.QuerySubscribeInfo(payType);
|
|
}
|
|
|
|
public void QuerySubscribeInfoFinish(string result)
|
|
{
|
|
if(luaQuerySubscribeInfoCallback != null)
|
|
{
|
|
luaQuerySubscribeInfoCallback(0, result);
|
|
luaQuerySubscribeInfoCallback = null;
|
|
}
|
|
}
|
|
}
|
|
}
|