Примеры использования методов

Данные операции позволяют настроить работу плагина.

  1. Получение Receipt для Revenue

Получение Receipt для Revenue

Данный пример основан на использовании Unity IAP.

// Объявление структуры Receipt для получения
// информации об IAP.
[System.Serializable]
public struct Receipt
{
    public string Store;
    public string TransactionID;
    public string Payload;
}

// Дополнительная информация об IAP для Android.
[System.Serializable]
public struct PayloadAndroid
{
    public string Json;
    public string Signature;
}

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
    var product = args.purchasedProduct;
    if(String.Equals(product.definition.id, kProductIDConsumable, StringComparison.Ordinal)) {
        string currency = product.metadata.isoCurrencyCode;
        double price = decimal.ToDouble(product.metadata.localizedPrice);

        // Создание объекта класса YandexAppMetricaRevenue.
        YandexAppMetricaRevenue revenue = new YandexAppMetricaRevenue(price, currency);
        if(product.receipt != null) {
            // Создание объекта класса YandexAppMetricaReceipt.
            YandexAppMetricaReceipt yaReceipt = new YandexAppMetricaReceipt();
            Receipt receipt = JsonUtility.FromJson<Receipt>(product.receipt);
#if UNITY_ANDROID
            PayloadAndroid payloadAndroid = JsonUtility.FromJson<PayloadAndroid>(receipt.Payload);
            yaReceipt.Signature = payloadAndroid.Signature;
            yaReceipt.Data = payloadAndroid.Json;
#elif UNITY_IPHONE
            yaReceipt.TransactionID = receipt.TransactionID;
            yaReceipt.Data = receipt.Payload;
#endif
            revenue.Receipt = yaReceipt;
        }
        // Отправка данных на сервер AppMetrica.
        AppMetrica.Instance.ReportRevenue(revenue);
    }
    return PurchaseProcessingResult.Complete;
}