๋กœ์ง์€ ๊ฐ„๋‹จํ•จ

์œ ์ €๊ฐ€ ๊ฒฐ์ œ ์š”์ฒญ์„ ํ–ˆ๋Š”๋ฐ ๋ฐ”๋กœ ๊ตฌ๋งคํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ง€์—ฐ ๊ตฌ๋งค๋ฅผ ํ•œ๋‹ค? -> ์ข†๊นŒ์„ธ์š”

์œ ๋‹ˆํ‹ฐ iap ์‚ฌ์šฉํ•˜๋Š” ์ค‘์ด๋ผ๋ฉด ๋ณ„๋กœ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ


private IGooglePlayStoreExtensions m_GoogleExtensions;

๋จผ์ € ์š”๋Ÿฐ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ 



public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
m_StoreController = controller;
m_GoogleExtensions = extensions.GetExtension<IGooglePlayStoreExtensions>();
}

์œ ๋‹ˆํ‹ฐ iap ๊ธฐ๋ณธ ๊ฐ€์ด๋“œ์— ๋งž๊ฒŒ ๊ตฌํ˜„์„ ํ•˜๋‹ค๊ฐ€

OnInitialized์—์„œ GetExtension์„ ํ•ด์ค€๋‹ค



public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
if (m_GoogleExtensions.IsPurchasedProductDeferred(args.purchasedProduct))
{
var message = Converter.Localization("Sentence/message_noDefferedPurchase");
PopUp.ShowNotiPopUp(message, null);
return PurchaseProcessingResult.Complete;
}

๊ทธ๋ฆฌ๊ณ  ๊ตฌ๋งค๊ฐ€ ์ง„ํ–‰๋˜๋Š” ProcessPurchase์˜ ๊ฐ€์žฅ ์œ„์ชฝ์— IsPurchasedProductDeferred๋ฅผ ์ฒดํฌํ•ด์„œ true๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด ์‘ ์•ˆํŒ”์•„ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ.

์ด๋Ÿฌ๋ฉด ์ง€์—ฐ ๊ตฌ๋งค ์‹œ ์•„์ดํ…œ ์ง€๊ธ‰์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค


์•ผ๋งค๋กœ ๊ตฌํ˜„ํ•œ ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ๋„ˆ๋ฌด 100% ์‹ ๋ขฐ๋Š” ์•ˆ ํ•˜๋Š”๊ฒŒ ์ข‹์Œ


์ด ๋ฐฉ๋ฒ•์˜ ๋ฌธ์ œ์ ์€ ์–ด์จŒ๋“  ๊ฒฐ์ œ ๋กœ๊ทธ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค๋Š”๊ฑฐ + ์ง„์งœ๋กœ ์ง€์—ฐ ๊ตฌ๋งค๋ฅผ ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€ ๊ตฌ๋งค๋ฅผ ๋ชปํ•œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

์ง„์งœ๋กœ ์ง€์—ฐ ๊ตฌ๋งค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์œผ๋ฉดย OnInitialized ์‹คํ–‰ ์‹œ ์ง€์—ฐ๊ตฌ๋งค ์ƒํ’ˆ์„ ์ฒดํฌํ•ด์„œ ์ž…๊ธˆ ํ™•์ธ์ด ๋˜๋ฉด ์•„์ดํ…œ์„ ์ง€๊ธ‰ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค