lib_unity_purchase/Runtime/AppleMacos/OSXStoreBindings.cs

189 lines
5.7 KiB
C#

using System.Runtime.InteropServices;
#if !UNITY_EDITOR
namespace UnityEngine.Purchasing
{
internal class OSXStoreBindings : INativeAppleStore
{
[DllImport("unitypurchasing")]
private static extern bool unityPurchasingRetrieveProducts(string json);
[DllImport("unitypurchasing")]
private static extern bool unityPurchasingPurchase(string json, string developerPayload);
[DllImport("unitypurchasing")]
private static extern bool unityPurchasingFinishTransaction(string productJSON, string transactionId);
[DllImport("unitypurchasing")]
private static extern void unityPurchasingRestoreTransactions();
[DllImport("unitypurchasing")]
private static extern void unityPurchasingRefreshAppReceipt();
[DllImport("unitypurchasing")]
private static extern void unityPurchasingAddTransactionObserver();
[DllImport("unitypurchasing")]
private static extern void unityPurchasingSetApplicationUsername(string username);
[DllImport("unitypurchasing")]
private static extern void setUnityPurchasingCallback(UnityPurchasingCallback AsyncCallback);
[DllImport("unitypurchasing")]
private static extern string getUnityPurchasingAppReceipt();
[DllImport("unitypurchasing")]
private static extern double getUnityPurchasingAppReceiptModificationDate();
[DllImport("unitypurchasing")]
private static extern string getUnityPurchasingTransactionReceiptForProductId(string productId);
[DllImport("unitypurchasing")]
private static extern bool getUnityPurchasingCanMakePayments();
[DllImport("unitypurchasing")]
private static extern void setSimulateAskToBuy(bool enabled);
[DllImport("unitypurchasing")]
private static extern bool getSimulateAskToBuy();
[DllImport("unitypurchasing")]
private static extern void unityPurchasingFetchStorePromotionOrder();
[DllImport("unitypurchasing")]
private static extern void unityPurchasingUpdateStorePromotionOrder(string json);
[DllImport("unitypurchasing")]
private static extern void unityPurchasingFetchStorePromotionVisibility(string productId);
[DllImport("unitypurchasing")]
private static extern void unityPurchasingUpdateStorePromotionVisibility(string productId, string visibility);
[DllImport("unitypurchasing")]
private static extern void unityPurchasingInterceptPromotionalPurchases();
[DllImport("unitypurchasing")]
private static extern void unityPurchasingContinuePromotionalPurchases();
[DllImport("unitypurchasing")]
private static extern void unityPurchasingPresentCodeRedemptionSheet();
public void SetUnityPurchasingCallback(UnityPurchasingCallback AsyncCallback)
{
setUnityPurchasingCallback(AsyncCallback);
}
public string appReceipt
{
get
{
return getUnityPurchasingAppReceipt();
}
}
public double appReceiptModificationDate
{
get
{
return getUnityPurchasingAppReceiptModificationDate();
}
}
public bool canMakePayments
{
get
{
return getUnityPurchasingCanMakePayments();
}
}
public bool simulateAskToBuy
{
get
{
return getSimulateAskToBuy();
}
set
{
setSimulateAskToBuy(value);
}
}
public void RetrieveProducts(string json)
{
unityPurchasingRetrieveProducts(json);
}
public void Purchase(string productJSON, string developerPayload)
{
unityPurchasingPurchase(productJSON, developerPayload);
}
public void FinishTransaction(string productJSON, string transactionId)
{
unityPurchasingFinishTransaction(productJSON, transactionId);
}
public void RestoreTransactions()
{
unityPurchasingRestoreTransactions();
}
public void RefreshAppReceipt()
{
unityPurchasingRefreshAppReceipt();
}
public void AddTransactionObserver()
{
unityPurchasingAddTransactionObserver();
}
public void SetApplicationUsername(string applicationUsername)
{
unityPurchasingSetApplicationUsername(applicationUsername);
}
public void FetchStorePromotionOrder()
{
unityPurchasingFetchStorePromotionOrder();
}
public void SetStorePromotionOrder(string json)
{
unityPurchasingUpdateStorePromotionOrder(json);
}
public void FetchStorePromotionVisibility(string productId)
{
unityPurchasingFetchStorePromotionVisibility(productId);
}
public void SetStorePromotionVisibility(string productId, string visibility)
{
unityPurchasingUpdateStorePromotionVisibility(productId, visibility);
}
public string GetTransactionReceiptForProductId(string productId)
{
return getUnityPurchasingTransactionReceiptForProductId(productId);
}
public void InterceptPromotionalPurchases()
{
unityPurchasingInterceptPromotionalPurchases();
}
public void ContinuePromotionalPurchases()
{
unityPurchasingContinuePromotionalPurchases();
}
public void PresentCodeRedemptionSheet()
{
unityPurchasingPresentCodeRedemptionSheet();
}
}
}
#endif