Oyun içi satın alma
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.
- SDK'da alışveriş özelliğini ayarlayın.
Portal Parası
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.
Not
Uluslararası ödemelerde yanın bulunduğu ülkeye göre kur değişebilir.
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ı
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.
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 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.
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 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.
Satın Alma Süreci
Bir uygulama içi satın alımı şu yöntemle etkinleştirebilirsiniz:
ysdk.payments.create_purchase(callback, options)
callback
— function — çağrılan metodun geri çağrımı. Şu şekilde görünür:
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ı 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
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
Bir oyuncunun zaten hangi satın alımları yaptığını öğrenmek için şu yöntemi kullanın:
ysdk.payments.getPurchases(
callback: function,
options : {
signed: boolean|nil
}
)
callback
— function — çağrılan metodun callback'i. Şu şekilde görünür:
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
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
Mevcut satın almaların ve fiyatlarının bir listesini almak için ysdk.payments.getCatalog()
yöntemini kullanın.
ysdk.payments.getCatalog(callback: function)
callback
— function — çağrılan metodun callback’i. Şu şekilde görünür:
function(self, products: Product[]|nil): nil
products: table[]
— ürünler hakkında bilgi. Şu özellikleri içerir:
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
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
İ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.
ysdk.payments.consume_purchase(purchase_token: string)
Dikkat
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.
Örnek
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