рей.рек.резрей
0.60.5
рдЖрдИрдУрдПрд╕
getAvailablePurchases рдХрд╛ рдХреЛрдИ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИ
IOS рдкрд░ getAvailablePurchases
рдХреЙрд▓ рдХрд░рдирд╛ рдПрдХ рд╕рдВрд╡рд╛рдж "iTunes рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ" рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рджреЗрдВред
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдореИрдВ рдЦрд░реАрджреЗ рдЧрдП рдЖрдЗрдЯрдо рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рдкреНрд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди getAvailablePurchases
рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИ, рд╣реИ рдирд╛?
рдЦрд░реАрджреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ AppState рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ getAvailablePurchases
рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢ AppState рди рдХреЗрд╡рд▓ рдРрдк рд╕реНрдЯрд╛рд░реНрдЯ рдкрд░ рдмрд▓реНрдХрд┐ p.ex. рдПрдХ рд╕рдВрд╡рд╛рдж рд╕реЗ рдРрдк рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рдмрд╛рдж (рдРрдк рдХреЗ рдХрд╛рд░рдг) p.ex. ITunes рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ ... :(
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИред рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рдЦрд░реАрджрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ рд╕рдВрд╡рд╛рдж рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд╛рдЦ рджрд░реНрдЬ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ред
рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕
рдХреЙрд▓ getAvailablePurchases
рдЬрдм рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддреЗ рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░ рд╕рдХреЗрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрдВрдХреНрд╢рди рдХрд╣рддреЗ рд╕рдордп рднреА рдПрдХ рдкреНрд░реЙрдореНрдкреНрдЯ рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдЦрд░реАрдж рдмрд╣рд╛рд▓" рджрдмрд╛рддрд╛ рд╣реИ рдФрд░ рдЦрд░реАрдж рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдмреИрдХрдПрдВрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдРрдк рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВред
рдЕрд░реЗ @voxspox @alexpchin рд╕рд╣реА рд╣реИред @alexpchin рдЬрдм рд╕реЗ рд╣рдо рдкреБрд▓ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧ рдореВрд▓ рджреЗрд╢ рдореЗрдВ IAP
рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирддреЗ рд╣реИрдВред рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд░рдЦрдирд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ, рд░рдЦ-рд░рдЦрд╛рд╡ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдмреЛрдЭ рд╣реИрдВред рдпрджрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдХреБрдЫ рдХрд╛рдо рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдХреБрдЫ рднреА рдЬреЛрдбрд╝рдиреЗ рдФрд░ PR
рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
@ рдореАрдлреА рдореИрдВрдиреЗ рдХрднреА рднреА "рдЕрдкрдиреА рдЦрд░реАрджрд╛рд░реА рдмрд╣рд╛рд▓ рдХрд░реЗрдВ" рдмрдЯрди рдХреЗ рд╕рд╛рде рдРрдк рдирд╣реАрдВ рджреЗрдЦреА рд╣реИред UX рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдРрд╕рд╛ рдмрдЯрди рдПрдХ рдмреЛрдЭ рд╣реИ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рднреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрдк рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдХреНрдпрд╛ рдЦрд░реАрджрд╛ рд╣реИ;)
@hyochan рдореБрдЭреЗ
рдореИрдВрдиреЗ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдРрдк рджреЗрдЦреЗ рд╣реИрдВред рдореБрдЭреЗ рдЕрдм рдпрд╛рдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ (рдпрд╛ рд╕реЗрдм рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ) рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдРрдкрд▓ рдХреЗ рдРрдк рд╕реНрдЯреЛрд░ рдЧрд╛рдЗрдбрд▓рд╛рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рдпрд╣ рдмрдЯрди рд╣реИ:
https://developer.apple.com/app-store/subsults/
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдмреБрд░рд╛ рд╣реЛрдЧрд╛ UX рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрднреА рдореЗрд░рд╛ рдРрдк рдЦреЛрд▓рддреЗ рд╕рдордп рдЕрдкрдиреА рдРрдкреНрдкрд▓ рдЖрдИрдбреА рджрд░реНрдЬ рдХрд░рдиреА рдкрдбрд╝реЗ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреНрд░рд╛рдордХ рд╣реЛрдЧрд╛ред (рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдРрд╕рд╛ рджреЗрдЦрд╛ рд╣реИ рдпрд╛ SSL MITM рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд╛рдИрдлрд╛рдИ рд▓реИрдВрдбрд┐рдВрдЧ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ)
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдм рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдХреНрдпрд╛ getAvailablePurchases
рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдирдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд╢реАрдШреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛? рдпрд╛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореИрдВ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ iTunes рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?
1+ рд╡рд╣реА
рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рдкрд░ рдХреЛрдИ рдЬрд╡рд╛рдм? рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЯреЗрд╕реНрдЯрдлрд▓рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЛрдб рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ?
рдЗрд╕ рдмреАрдЪ, рдореБрдЭреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдЪрд░ isRestorePurchasesEnabled
рдЬреЛ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдРрдк рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
рдореЗрдВ рдЗрд╕:
isRestorePurchasesEnabled = false
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рд╛рд░рдВрдн рдкрд░:
if (Android || isRestorePurchasesEnabled) {
call getAvailablePurchases
on error.code === 'E_USER_CANCELLED' -> isRestorePurchasesEnabled= false
}
рдЦрд░реАрдж рдкрд░:
isRestorePurchasesEnabled = true
requestSubscription ...
рд╕рдорд╛рдпреЛрдЬрди:
Button "restore purchases" -> isRestorePurchasesEnabled = true
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдиреЗрдХреНрдЯ-рдЖрдИрдЯреНрдпреВрдиреНрд╕-рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рдлрд┐рд░ рдХрднреА рдирд╣реАрдВ рджреЗрдЦреЗрдЧрд╛ред рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдХреЗрд╡рд▓ рдЦрд░реАрджрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА + рд╕рдВрдЧреНрд░рд╣реАрдд рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реЙрдореНрдкреНрдЯ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреЗрд╡рд▓ рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рд╕рдВрдХреЗрдд рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ / рдЖрдЗрдЯреНрдпреВрдиреНрд╕ / рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддреЗ рдореЗрдВ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рддрд╛ рд╣реИред рдкрддрд╛ рдирд╣реАрдВ рдпрд╣ рдЙрддреНрдкрд╛рджрди рдореЛрдб рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдореБрджреНрджрд╛ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП" рдпрд╛ "рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдирдорд╕реНрдХрд╛рд░,
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
рдореИрдВ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрднреА рднреА рдЙрддреНрдкрд╛рдж рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ?
рдореИрдВ рд╕реЗрдм рдФрд░ рдЧреВрдЧрд▓ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рджреНрдж рдХрд░рдиреЗ рдХрд╛ рдкрддрд╛ рдХреИрд╕реЗ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ?
рдореИрдВ рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ getAvailablePurchase рд╡рд┐рдзрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдзрдиреНрдпрд╡рд╛рджред
рдЕрдЧрд░ рд╡рд░реНрдХрдЖрдЙрдЯ рд╕рд┐рд░реНрдл рдЯреЗрд╕реНрдЯрдлреНрд▓рд╛рдЗрдЯ рдХреА рдмрдЬрд╛рдП рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рднреА рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдЯрди рджрдмрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдРрдк рд▓реЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
Apple рдЕрднреА рднреА рд╣рдореЗрдВ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдРрдк рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░
рдЦрд░реАрджрд╛рд░реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рди рдХрд░реЗрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдкрдХрд╛ рдРрдк рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЦрд░реАрдж рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдРрдк рд╕реНрдЯреЛрд░ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдРрдк рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
https://developer.apple.com/documentation/storekit/in-app_purchase/restoring_purchased_products# : ~: рдкрд╛рда = рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд% 20Completed% 20Transactions,% 20your% 20app рд╣реИ% 20completed% 20transactions рдХреАред
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд░реАрдж рдпрд╛ рдЦрд░реАрдж рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рдмреИрдХрдПрдВрдб рдкрд░ рд░рд╕реАрдж рднреЗрдЬрдиреА рд╣реИред рдлрд┐рд░ рдмреИрдХрдПрдВрдб рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдРрдк рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Apple рдЕрднреА рднреА рд╣рдореЗрдВ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _not_
рдЦрд░реАрджрд╛рд░реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рди рдХрд░реЗрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдкрдХрд╛ рдРрдк рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЦрд░реАрдж рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдРрдк рд╕реНрдЯреЛрд░ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдРрдк рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
https://developer.apple.com/documentation/storekit/in-app_purchase/restoring_purchased_products# : ~: рдкрд╛рда = рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд% 20Completed% 20Transactions,% 20your% 20app рд╣реИ% 20completed% 20transactions рдХреАред
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд░реАрдж рдпрд╛ рдЦрд░реАрдж рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рдмреИрдХрдПрдВрдб рдкрд░ рд░рд╕реАрдж рднреЗрдЬрдиреА рд╣реИред рдлрд┐рд░ рдмреИрдХрдПрдВрдб рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдРрдк рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрд╡рддрдГ-рдирд╡реАрдиреАрдХрд░рдг рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдирд╡реАрдирддрдо рд░рд╕реАрдж рдХреИрд╕реЗ рдорд┐рд▓реЗрдЧреА?
рдмреИрдХрдПрдВрдб рдореЗрдВ рдПрдХ рдЖрд╡рдзрд┐рдХ рдорддрджрд╛рди рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЦрд░реАрдж рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдлрд┐рд░ рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдирд╡реАрдирддрдо рд░рд╕реАрдж рд▓реЗрдВ (рдЬреЛ Google / рдРрдкреНрдкрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ) рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рд╕рд╣реЗрдЬреЗрдВред
рдмреИрдХрдПрдВрдб рдореЗрдВ рдПрдХ рдЖрд╡рдзрд┐рдХ рдорддрджрд╛рди рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЦрд░реАрдж рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдлрд┐рд░ рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдирд╡реАрдирддрдо рд░рд╕реАрдж рд▓реЗрдВ (рдЬреЛ Google / рдРрдкреНрдкрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ) рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рд╕рд╣реЗрдЬреЗрдВред
рд╣рд╛рдп @ mifi рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдореВрд▓ рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рдж рд╕рд░реНрд╡рд░ рдкрд░ latestReceipt
рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рд╣реИред рддреЛ рдЬрдм рдореВрд▓ latestReceipt
рд╕рд╛рде рдорддрджрд╛рди рдПрдХ рдирдпрд╛ latestReceipt
рдореВрд▓реНрдп рд╣реИ?
рд╣рд╛рдВ, рдмреИрдХрдПрдВрдб рдкрд░ iap.validate
рдлрд╝рдВрдХреНрд╢рди рдРрдкреНрдкрд▓ / Google рдПрдкрд┐рд╕ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдЬреЛ рдирд╡реАрдирддрдо рд░рд╕реАрдж рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдПрдХ рд╡рд┐рдХрд╛рд╕ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдЕрдХреНрд╖рдп рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг (5 рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рддрд┐ рдЕрд╡рдзрд┐)
рдзрдиреНрдпрд╡рд╛рдж @mifi рдЬрд┐рд╕рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рдорджрдж рдХреА рд╣реИ! рдпрд╣ "рдирд╡реАрдирддрдоReceipt" рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "latestReceipt" рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдЕрдЬреАрдм рд▓рдЧ рд░рд╣рд╛ рдерд╛
рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдореБрджреНрджрд╛ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП" рдпрд╛ "рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреНрдпрд╛
getAvailablePurchases
рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдирдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд╢реАрдШреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛? рдпрд╛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореИрдВ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ iTunes рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?