using Appcharge.Networking;
using Appcharge.Utils;
using UnityEngine;
namespace Appcharge
{
public class PurchaseManager : MonoBehaviour
{
public static PurchaseManager Instance { get; private set; }
[SerializeField]private FlowManager _flowManager;
private void Awake()
{
if (Instance == null)
{
Instance = this;
Application.deepLinkActivated += onDeepLinkActivated;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
private void onDeepLinkActivated(string deeplinkURL) {
Debug.Log("Deeplink URL: " + deeplinkURL);
PurchaseStatus status = PurchaseStatusUtils.ParseStatusFromDeepLink(deeplinkURL);
switch (status)
{
case PurchaseStatus.Success:
Debug.Log("Purchase successful");
break;
case PurchaseStatus.Fail:
Debug.Log("Purchase failed");
break;
case PurchaseStatus.Cancel:
Debug.Log("Purchase canceled");
break;
case PurchaseStatus.Close:
Debug.Log("Purchase closed");
break;
default:
Debug.Log("Unknown purchase status");
break;
}
}
public void OpenCheckout() {
_flowManager.ShowLoader(true);
StartCoroutine(
HttpRequest.CreateSession(
url => {
Application.OpenURL(url);
},
error => {
Debug.Log("Failed to create session: " + error);
}
)
);
}
}