Skip to content

Get SKU Details

Hamid Mahmoodi edited this page Jan 1, 2025 · 2 revisions



Reterive in-app billing item details such id, title and price :

Using async :

var result = await payment.GetSkuDetails("PRODUCT_ID");
Debug.Log($"{result.message}, {result.stackTrace}");
if (result.status == Status.Success)
{
    foreach (var sku in result.data)
    {
        Debug.Log(sku.ToString());
    }
}

Using callback :

_ = payment.GetSkuDetails("PRODUCT_ID", OnReceiveSkuDetails);
void OnReceiveSkuDetails(SKUDetailsResult result)
{
    Debug.Log($"{result.message}, {result.stackTrace}");
    if (result.status == Status.Success)
    {
        foreach (var sku in result.data)
        {
            Debug.Log(sku.ToString());
        }
    }
}

You can pass multiple product ids sperated by comma to it like this:
var result = await payment.GetSkuDetails("PRODUCT_ID1,PRODUCT_ID2");
Debug.Log($"{result.message}, {result.stackTrace}");
if (result.status == Status.Success)
{
    foreach (var sku in result.data)
    {
        Debug.Log(sku.ToString());
    }
}

There is an oveloaded method which accepts IEnumerable as productIds that you can use as well:

var result = await payment.GetSkuDetails(new List<string>{"PRODUCT_ID1","PRODUCT_ID2"});
Debug.Log($"{result.message}, {result.stackTrace}");
if (result.status == Status.Success)
{
    foreach (var sku in result.data)
    {
        Debug.Log(sku.ToString());
    }
}


Reterive subscription item details using callback :
_ = payment.GetSkuDetails("PRODUCT_ID", OnReceiveSkuDetails, Payment.Type.subscription);
void OnReceiveSkuDetails(SKUDetailsResult result)
{
    Debug.Log($"{result.message}, {result.stackTrace}");
    if (result.status == Status.Success)
    {
        var purchase = result.data;
        Debug.Log(purchase.ToString());
    }
}





Fourth Step: Get Purchases or Subscriptions

Clone this wiki locally