---
metadata:
  - name: generator
    content: Diplodoc Platform v5.57.3
alternate:
  - https://yandex.com.tr/dev/games/doc/en/sdk/defold/in-app-purchases.md
  - https://yandex.com.tr/dev/games/doc/hi/sdk/defold/in-app-purchases.md
  - https://yandex.com.tr/dev/games/doc/ko/sdk/defold/in-app-purchases.md
  - https://yandex.com.tr/dev/games/doc/ru/sdk/defold/in-app-purchases.md
  - https://yandex.com.tr/dev/games/doc/tr/sdk/defold/in-app-purchases.md
  - https://yandex.com.tr/dev/games/doc/vi/sdk/defold/in-app-purchases.md
  - https://yandex.com.tr/dev/games/doc/zh/sdk/defold/in-app-purchases.md
  - href: tr/sdk/defold/in-app-purchases.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/games/doc/tr/llms.txt

# Oyun içi satın alma

<!-- source: tr/_includes/script-common.md -->
<!-- source: tr/_includes/script/index-js.md -->

<!-- endsource: tr/_includes/script/index-js.md -->

<!-- source: tr/_includes/script/requirements-js.md -->

<!-- endsource: tr/_includes/script/requirements-js.md -->

<!-- source: tr/_includes/script/image-modal-js.md -->

<!-- endsource: tr/_includes/script/image-modal-js.md -->
<!-- endsource: tr/_includes/script-common.md -->

Kullanıcıların oyun içi satın alma yapmasına izin vererek gelir elde edebilirsiniz. Örneğin, bir seviyeyi tamamlamak için ekstra süre veya oyun karakteri için aksesuarlar. Bunun için:

- Yandex Games geliştirici konsolunda [Oyun içi satın almayı bağlayın](https://yandex.com.tr/dev/games/doc/tr/console/purchases.md#connect).
- SDK'da alışveriş özelliğini ayarlayın.

## Portal Parası {#portal-currency}

Yan — Yandex Games platformunun oyun içi satın almalar için kullanılan portal parasıdır. Yanlar, oyuncunun tüm oyunlar için ortak olan bakiyesinde tutulur ve banka kartlarıyla bakiye artırılabilir. Yan ile ruble arasındaki kur dinamik olarak değişir.

{% note info %}

Uluslararası ödemelerde yanın bulunduğu ülkeye göre kur değişebilir.

{% endnote %}

Bakiye aşağıdaki şekillerde artırılabilir:

- katalog başlığında;
- oyuncu profilinde;
- oyun sırasında satın alma anında.

Kullanıcılar ayrıca promosyonlara katılarak veya sabit paketler satın alarak bonus yanlar kazanabilirler.

Hem Yandex'te yetkilendirilmiş kullanıcılar hem de yetkilendirilmemiş kullanıcılar oyun içi satın alma yapabilir. Kullanıcılar, oyunun herhangi bir anında ve hatta satın alma sırasında bile yetkilendirilebilirler.

Portal parasının uygulanmasıyla birlikte geliştiriciye ödenecek lisans gelirlerinin ödenmesiyle ilgili koşullar ve düzenlemeler değişmeyecektir.

## Bağlantı şartları {#connection-conditions}

Satın alma işlemleri için bağlantı gereksinimleri, tüzel kişiliğinizin ikamet ettiği ülkeye bağlı olarak değişir.

{% list tabs %}

- RF Rezidenti

    Satın alımları yapılandırmak ve test etmek için, "Deed of Transfer of Non-exclusive Rights to Use the Game"ni imzalamanız gerekmektedir.

    Satın alma ekledikten ve oyunun taslağını yayımladıktan sonra, belge formunu talep etmek için [games-partners@yandex-team.com](mailto:games-partners@yandex-team.com){.external} adresine e-posta gönderin. E-postada mutlaka oyunun adı ve kimliği (ID) belirtilmelidir.

    E-postanıza yanıt olarak, size "Deed of Transfer of Non-exclusive Rights to Use the Game" formu gönderilecektir. Bu formu doldurmanız, imzalamanız ve taranmış (veya kaliteli bir fotoğraf olarak) şeklini e-postamıza yanıt olarak iletmeniz gerekmektedir.

    Sadece imzalı belge alındıktan sonra oyun içi satın alımların yapılandırılması ve test edilmesi mümkün olacaktır.

- RF Rezidenti Olmayan

    Satın alımları ekledikten ve oyunun taslağını yayımladıktan sonra, satın almaların etkinleştirilmesi talebiniz için [games-partners@yandex-team.com](mailto:games-partners@yandex-team.com){.external} adresine e-posta gönderin. E-postada mutlaka oyunun adı ve kimliği (ID) ile birlikte tüzel kişiliğinizin bulunduğu ülkeyi belirtmelisiniz.

{% endlist %}

## Satın Alma Süreci {#purchase-process}

Bir uygulama içi satın alımı şu yöntemle etkinleştirebilirsiniz:

```lua
ysdk.payments.create_purchase(callback, options)
```

`callback` — function — çağrılan metodun geri çağrımı. Şu şekilde görünür:

```lua
function(self, purchase: table|nil, signature: string|nil): nil
```

- `purchase: table` — satın alma hakkında bilgi. Şu özellikleri içerir:
    - `product_id: string` — ürün ID'si.
    - `purchase_token: string` — satın alımın kullanımı için belirteç.
    - `developer_payload: string|nil` — satın alma ile ilgili ek veriler.
- `signature: string|nil` — satın alma verileri ve [oyuncunun kimliğinin doğrulanması](https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-purchases.md#purchase-data-example) için imza.

`options` — yöntemin parametreleri. Şu özellikleri içerir:

- `id: string` — ürünün geliştirici konsolunda belirlenen kimliği.
- `developer_payload: string` — isteğe bağlı parametre. Sunucunuza iletmek istediğiniz satın alma hakkında ek bilgi (signature parametresi ile iletilecektir).
- `signed: boolean|nil` — isteğe bağlı parametre. Oyunun hilelere karşı korunması için tasarlanmıştır.

**Örnek**

```lua showLineNumbers
function buy_item(id)
  ysdk.payments.create_purchase(
    function(self, purchase, signature)
      if purchase then
        print(purchase.product_id, signature)
      end
    end,
    { id, signed = true }
  )
end
```

## Satın alınan ürünlerin listesini alma {#getting-purchased-items}

Bir oyuncunun zaten hangi satın alımları yaptığını öğrenmek için şu yöntemi kullanın:

```lua showLineNumbers
ysdk.payments.getPurchases(
    callback: function,
    options : {
        signed: boolean|nil
    }
)
```

`callback` — function — çağrılan metodun callback'i. Şu şekilde görünür:

```lua
function(self, purchase: Purchase[]|nil, signature: string|nil): nil
```

- `Purchase` — satın alma hakkında bilgi. Şu özellikleri içerir:
    - `product_id: string` — ürün ID'si.
    - `purchase_token: string` — satın almanın kullanılabilmesi için token.
    - `developer_payload: string|nil` — satın alma ile ilgili ek veriler.

- `signature: string|nil` — oyuncunun kimliğinin doğrulanması için satın alma verileri ve imza.

**Örnek**

```lua showLineNumbers
function display_puchases()
  ysdk.payments.get_purchases(function(self, purchases)
    if purchases then
      for k, v in pairs(purchases) do print(k, v) end
    end
  end)
end
```

## Tüm ürünlerin kataloğunu alma {#getting-all-products}

Mevcut satın almaların ve fiyatlarının bir listesini almak için `ysdk.payments.getCatalog()` yöntemini kullanın.

```lua
ysdk.payments.getCatalog(callback: function)
```

`callback` — function — çağrılan metodun callback’i. Şu şekilde görünür:

```lua
function(self, products: Product[]|nil): nil
```

- `products: table[]` — ürünler hakkında bilgi. Şu özellikleri içerir:

```lua showLineNumbers
products = [
    {
        id: string,
        title: string,
        description: string,
        image_uri: string,
        price: string,
        price_value: string,
        price_currency_code: string,
        price_currency_image: {
            small: string,
            medium: string,
            svg: string
        }
    },
    ...
]
```

**Örnek**

```lua showLineNumbers
function display_shop()
  ysdk.payments.get_catalog(function(self, products)
    if products then
      for k, v in pairs(products) do print(v.title, v.price, v.description) end
    end
  end)
end
```

## Satın almaların işlenmesi ve oyun içi para biriminin hesaba yüklenmesi {#processing-crediting}

İki tür satın alma vardır, kalıcı (reklamları devre dışı bırakma gibi) ve kullanılan (oyun içi para birimi gibi).

Kalıcı satın almaları işlemek için `ysdk.payments.get_purchases()` yöntemini uygulayın.

Kullanılan satın almaları işlemek için `ysdk.payments.consume_purchase()` yöntemini uygulayın.

```lua
ysdk.payments.consume_purchase(purchase_token: string)
```

{% note alert %}

`ysdk.payments.consume_purchase()` yöntemi çağrıldıktan sonra, işlenen satın alma işlemi hiçbir kurtarma olasılığı olmadan silinir. Bu nedenle önce oyuncu verilerini `ysdk.player.set_stats()` veya `ysdk.player.increment_stats()` yöntemleriyle değiştirin ve ardından satın alma işlemini gerçekleştirin.

{% endnote %}

**Örnek**

```lua showLineNumbers
function buy_item(id)
  ysdk.payments.create_purchase(
    function(self, purchase)
      if purchase then
        ysdk.payments.consume_puchase(purchase.purchase_token)
      end
    end,
    { id }
  )
end
```

---


<!-- source: tr/_includes/button-git.md -->
<a href="https://github.com/yandex-games-plugins/defold">
  <span class="button">Depo</span>
</a>
<!-- endsource: tr/_includes/button-git.md -->
