React-native-iap: Android рдкрд░ DEFERRED рдореЛрдб рдХреЗ рд╕рд╛рде рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рджрд┐рд╕ре░ 2019  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dooboolab/react-native-iap

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг

4.3.3 рд╣реИ

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг

0.59.10 рд╣реИ

рдЬрд┐рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдореЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рд╣реБрдИ (IOS рдпрд╛ Android рдпрд╛ рджреЛрдиреЛрдВ?)

рдПрдВрдбреНрд░реЙрдпрдб

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдЬрдм рдирд╡реАрдиреАрдХрд░рдг рдореЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЦрд░реАрдж рдЕрдкрдбреЗрдЯ рд╢реНрд░реЛрддрд╛ рдХреЛ рдирдП рд▓реЗрдирджреЗрди рд░рд╕реАрдж рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдЦрд░реАрдж рддреНрд░реБрдЯрд┐ рд╢реНрд░реЛрддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

{рд╕рдВрджреЗрд╢: 'рдЦрд░реАрдж рд╢реВрдиреНрдп рд╣реИрдВред'
рдХреЛрдб: 'рдареАрдХ рд╣реИ',
debugMessage: '',
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛрдб: 0}

рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг (рдПрдореБрд▓реЗрдЯрд░? рд░рд┐рдпрд▓ рдбрд┐рд╡рд╛рдЗрд╕?)

рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ - рд╕реИрдВрдбрдмреЙрдХреНрд╕

рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

1. RNIap.requestSubscription (sku) рдХреЗ рд╕рд╛рде рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

2. RNIap.requestSubscription (newSku, false, sku, 4) рдХреЗ рд╕рд╛рде рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдирд╡реАрдиреАрдХрд░рдг рдпрд╛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░реЗрдВред (4 рдбрд┐рдлрд░реНрдб рдкреНрд░рд┐рд╡реЗрдВрд╢рди рдореЛрдб рд╣реИ) Google Play рдмрд┐рд▓рд┐рдВрдЧ рдбрд╛рдпрд▓реЙрдЧ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдкреНрд▓рд╛рди рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Google Play рд╕реЗ рдПрдХ рд╕реВрдЪрдирд╛ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рддреНрд░реБрдЯрд┐ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЙрдкрд░реНрдпреБрдХреНрдд рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

3. рдпрджрд┐ рдЖрдк RNIap.requestSubscription (newSku, false, sku, 4) рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Google Play рдмрд┐рд▓рд┐рдВрдЧ рд╕рдВрд╡рд╛рдж рдХрд╣реЗрдЧрд╛ рдХрд┐ рд╡реЗ рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

{рд╕рдВрджреЗрд╢: 'Google рд╕рдВрдХреЗрдд рджреЗ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рднреБрдЧрддрд╛рди рд╕реЗ рдЬреБрдбрд╝реЗ рдХреБрдЫ рдореБрджреНрджреЗ рд╣реИрдВред'
рдХреЛрдб: 'E_DEVELOPER_ERROR',
debugMessage: '',
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛрдб: 5}

рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА Google Play рдмрд┐рд▓рд┐рдВрдЧ рд╕рдВрд╡рд╛рдж рдпрд╣ рдХрд╣реЗрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдЖрджреЗрд╢ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдЙрддреНрдкрд╛рдж рдХреЛ рдЬрд▓реНрдж рд╣реА рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рддреНрд░реБрдЯрд┐ рд╢реНрд░реЛрддрд╛ рдХреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

{рд╕рдВрджреЗрд╢: 'рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдЖрдЗрдЯрдо рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВред'
рдХреЛрдб: 'E_ALREADY_OWNED',
debugMessage: '',
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛрдб: 7}

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрджрдо 2 рдХреЗ рд▓реЗрдирджреЗрди рдХреЗ рдХрд╛рд░рдг рдорд╛рдирд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдВрдХрд┐ рдЪрд░рдг 2 рдПрдХ рд░рд╕реАрдж рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

ЁЯХ╡я╕ПтАНтЩВя╕П need more investigation ЁЯЩП help wanted ЁЯдЦ android

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛?

рд╕рднреА 31 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд╡реАрдиреАрдХрд░рдг / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдмрд╛рдж getAvailablePurchases рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
Doc , The list of Purchase objects in onPurchasesUpdated() does not contain paused subscriptions. рд╕рдВрджрд░реНрдн рд▓реЗрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрдард┐рди рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЪрд░реНрдЪрд╛ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдореИрдВрдиреЗ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдЙрдиреНрдирдпрди / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж getAvailablePurchases () рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореВрд▓ рдЦрд░реАрдж рдХреА рдХреЗрд╡рд▓ рд▓реЗрди-рджреЗрди рд░рд╕реАрдж рд▓реМрдЯрд╛рдП рдЧрдП рд╕рд░рдгреА рдореЗрдВ рд╣реИред

RNIap v2.3.19 & v2.5.5 рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдм рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЦрд░реАрдж () рдПрдХ рдирдИ рд░рд╕реАрдж рд▓реМрдЯрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ v3 рдпрд╛ v4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдПрдХ рдмреЗрд╣рддрд░ рдИрд╡реЗрдВрдЯ рдЖрдзрд╛рд░рд┐рдд рдореЙрдбрд▓ рд╣реЛред

рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрджрд░реНрдн рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рд╕рджрд╕реНрдпрддрд╛ рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж рдирдИ рд░рд╕реАрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред

@ howg0924 рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ v2 рдФрд░ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдорддрднреЗрджреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВрдиреЗ # 893 рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдкрд░ рдХреЛрдб рджреЗрдЦрд╛ рд╣реИ
рдирдпрд╛ рдЕрдкрдбреЗрдЯ 4.4.0 рдореЗрдВ рдЖрдиреЗ рд▓рдЧреЗрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ [email protected] рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@hyochan рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл 4.4.0-rc.1 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рдЕрднреА рднреА рд╡рд╣реА рд╣реИред

RNIap.requestSubscription (oldSku, false, newSku 4) рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рддреНрд░реБрдЯрд┐ рд╢реНрд░реЛрддрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

{рд╕рдВрджреЗрд╢: 'рдЦрд░реАрдж рд╢реВрдиреНрдп рд╣реИрдВред'
рдХреЛрдб: 'рдареАрдХ рд╣реИ',
debugMessage: '',
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛрдб: 0}

рдФрд░ getAvailablePurchases () рдореЗрдВ рдХреЗрд╡рд▓ рдкреБрд░рд╛рдиреА рд░рд╕реАрдж рд╣реИред

@ howg0924 рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреЛ android , рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдбрд╛рд▓ рдмрд╛рд╣рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ Log.d рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдЧреБрдЬрд░рддрд╛ if рдореЗрдВ рд╕реНрдерд┐рддрд┐ buyItemByType ред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ? рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдЕрдВрдЬрд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@ howg0924 рдУрд╣ рд░реБрдХреЛ ~! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдвреВрдВрдв рд▓рд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рдЬрд▓реНрдж рд╣реА рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдиреЗ рджрд┐рдпрд╛!

@ howg0924 рдХреНрдпрд╛ рдЖрдк 4.4.0-rc.2 рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рд╕рдордп рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

@hyochan 4.4.0-rc.2 рдмрд┐рд▓реНрдб рдкрд░ рд╡рд┐рдлрд▓:

RNIapModule.java:436: error: incompatible types: SkuDetails cannot be converted to String:
   builder.setOldSku(selectedOldSku);
                     ^

@hyochan рдореИрдВрдиреЗ 4.4.0-rc.1 рдХреЗ buyItemByType () рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреАред рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рд╣реЛрдиреЗ рдкрд░, рдЗрд╕рдиреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛:

builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED);

рдФрд░ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд:

BillingResult billingResult = billingClient.launchBillingFlow(activity, flowParams);

рдХреНрдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдкреНрд░рд╡рд╛рд╣ / рдбреЗрдЯрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА / рдбрдВрдкрд┐рдВрдЧ рдХрд░реВрдВ?

(рдХреБрдЫ рдЧрд▓рддрдлрд╣рдореА рдХреЗ рдХрд╛рд░рдг рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛)

@ howg0924 рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЧрд▓рддреА рдХреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ env ред рдореИрдВрдиреЗ рдЗрд╕реЗ 4.4.0-rc.3 рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб builder.setOldSku(oldSku) рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

2.5.5 рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ 2.5.5 рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

build..RetplaceekkkProrationMode (BillingFlowParams.ProrationMode.DEFERRED);

рдбрд┐рдлрд░реНрдб рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордпред

рдЗрд╕рд▓рд┐рдП рдореИрдВ 4.4.0-rc.1 рдкрд░ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛:

1. рдХреНрдпрд╛ рдкреНрд░рдЪрд▓рди рдореЛрдб рдпрд╣ рдЕрдм рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
2. рдЬрдм рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ setReplaceSkusProrationMode () рджреНрд╡рд╛рд░рд╛

        if (prorationMode != null && prorationMode != -1) {
          if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE);
            if (type.equals(BillingClient.SkuType.SUBS) == false) {
              String debugMessage = "IMMEDIATE_AND_CHARGE_PRORATED_PRICE for proration mode only works in subscription purchase.";
              WritableMap error = Arguments.createMap();
              error.putString("debugMessage", debugMessage);
              error.putString("code", PROMISE_BUY_ITEM);
              error.putString("message", debugMessage);
              sendEvent(reactContext, "purchase-error", error);
              promise.reject(PROMISE_BUY_ITEM, debugMessage);
              return;
            }
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION);
          } else if (prorationMode == BillingFlowParams.ProrationMode.DEFERRED) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED);
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION);
          } else {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY);
          }
        }

рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ ProrationMode рдиреАрдЪреЗ рджреЗ рд░рд╣реЗ рд╣реИрдВред рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк auto renew subscription рддрдм рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк DEFERRED ?

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдХреЛрдб рдмрджрд▓реВрдВ:

        if (prorationMode != null && prorationMode != -1) {
          if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE);
            if (type.equals(BillingClient.SkuType.SUBS) == false) {
              String debugMessage = "IMMEDIATE_AND_CHARGE_PRORATED_PRICE for proration mode only works in subscription purchase.";
              WritableMap error = Arguments.createMap();
              error.putString("debugMessage", debugMessage);
              error.putString("code", PROMISE_BUY_ITEM);
              error.putString("message", debugMessage);
              sendEvent(reactContext, "purchase-error", error);
              promise.reject(PROMISE_BUY_ITEM, debugMessage);
              return;
            }
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION);
          } else if (prorationMode == BillingFlowParams.ProrationMode.DEFERRED) {
            // comment following line
            // builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED);
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION);
          } else {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY);
          }
        }

рддреЛ рдореИрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб / рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП RNIap.requestSubscription (newSku, false, sku, 4 / * DEFERRED рдореЛрдб * /) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдкреНрд░рдЪрд▓рди рдореЛрдб рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ v2.5.5 рдХреЗ рд░реВрдк рдореЗрдВ, рдмрд┐рд▓реНрдбрд░ред setReplaceSkusProrationMode () рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб v2.5.5 рд╕реЗ рд╣реИ:

        if (type.equals(BillingClient.SkuType.SUBS) && oldSku != null && !oldSku.isEmpty()) {
          // Subscription upgrade/downgrade
          if (prorationMode != null && prorationMode != 0) {
            builder.setOldSku(oldSku);
            if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE) {
              builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE);
            } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION) {
              builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION);
            } else {
              builder.addOldSku(oldSku);
            }
          } else {
            builder.addOldSku(oldSku);
          }
        }

@ howg0924 рдпрд╣ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ DEFFERED рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдЬреЛ 4.3.4 ред рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ 4.4.0+ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рдФрд░ рдЦрдмрд░ рд╣реЛ рддреЛ рдЖрдк рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрдмрдВрдзрд┐рдд # 391 # 555

рдареАрдХ рд╣реИ, рдореИрдВ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рд╕рдВрдмрдВрдзрд┐рдд # 707

@hyochan 4.4.0-rc.1 рдкрд░ рдЖрдЧреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж:

IMMEDIATE_WITH_TIME_PRORATION => рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
IMMEDIATE_AND_CHARGE_PRORATED_PRICE => рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
IMMEDIATE_WITHOUT_PRORATION => рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рдкрд░рд┐рднрд╛рд╖рд┐рдд => рдХрд╛рдо рдирд╣реАрдВ (рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ)

рд╡реИрд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ DEFFERED рднреА рдирд╣реАрдВ рд░рдЦрд╛ рд╣реИ рдЬреЛ рдХрд┐ 4.3.4 рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рдХреЛрдб 4.4.0+ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ 4.3.0 рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рдХрд╛рд░рдг рдЕрднреА рднреА рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдореЛрдб рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  if (prorationMode != 0 && prorationMode != -1) {
    builder.setReplaceSkusProrationMode(prorationMode);
  }

рд╣рд╛рд▓рд╛рдБрдХрд┐, 2.3.19 рдФрд░ 2.5.5 рд╕реЗ рдКрдкрд░ рдХреЛрдб рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдореИрдВрдиреЗ 2.3.19 рдФрд░ 2.5.5 рдХреЛ RNIap.requestSubscription (newSku, false, sku, 4 / * DEFERRED * /) рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ IMMEDIATE_WITH_TIME_PRORATION рдореЛрдб рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпреЛрдВ рджреЛрд╖ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдЕрдм рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрд▓рдЧ рд╣реИред

рдЬрдм рдореИрдВ requestSubscription(newSku, false, oldSku, 4) рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЛрдб OK рдФрд░ рдЦрд╛рд▓реА рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИред Google Play рд╕рд╛рдЗрдб рдкрд░ рднреБрдЧрддрд╛рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ (рдпрд╣ рд╕реНрдердЧрд┐рдд рд╣реИ)ред рдЬрдм рдЕрдЧрд▓рд╛ рд╕рджрд╕реНрдпрддрд╛ рд╢реБрд▓реНрдХ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдРрдк рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ purchaseUpdatedListener рдЗрд╡реЗрдВрдЯ рдорд┐рд▓рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЦрд░реАрдж рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде ( finishTransaction() )ред finishTransaction() DEVELOPER_ERROR рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред

рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдг 4.4.0 рдФрд░ 4.3.4 ред

Hi @hyochan , рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ https://github.com/dooboolab/react-native-iap/pull/893 рдореЗрдВ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдирд╣реАрдВ рд╣реИ рддрдп рдХрд┐рдпрд╛ рд╣реБрдЖред рдореБрдЭреЗ рдЕрднреА рднреА рд╢реНрд░реЛрддрд╛ error {"code": "OK", "debugMessage": "", "message": "purchases are null.", "responseCode": 0} рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдИрдореЗрд▓ You updated your subscription purchase рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ DEFERRED рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ?

рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореБрдЭреЗ рдпрд╣ рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ рдерд╛ред рдпрд╣ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдХреЗрд╡рд▓ deferred рдореЛрдб рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рд╣рд╛рдп @ howg0924 , рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЕрднреА рддрдХ рдорд┐рд▓рд╛ рд╣реИ?

@ nenjamin2405 рдирд╣реАрдВ, рдореИрдВ рдЕрднреА рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ IMMEDIATE_WITH_TIME_PRORATION рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдп @hyochan , рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрджреНрдпрддрди? рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдореЗрд░реЗ рдРрдк рдХреА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдЕрдЯрдХ рдЧрдИ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдЬрд╛рдВрдЪ рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдзрдиреНрдпрд╡рд╛рдж

рдЕрднреА рдирд╣реАрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рднреА рд▓рд╛рдПрдЧрд╛ред
Google рдпрд╛ StackOverflow рдФрд░ рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдореБрджреНрджрд╛ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП" рдпрд╛ "рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

рдореБрджреНрджрд╛ рдЦрд░реАрдж рдЕрджреНрдпрддрди рд╢реНрд░реЛрддрд╛ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╕рджрд╕реНрдпрддрд╛ рдкрд░ рдЦрд░реАрдж рдХреЗ рдПрдХ рд░рд┐рдХреНрдд рд╕реВрдЪреА рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреА рдЬрдЧрд╣ рд╣реИ, рдЬреЛ рдХреИрд╕реЗ рдПрдВрдбреНрд░реЙрдпрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреА рд╡рдЬрд╣ рд╕реЗ рд╣реИ (рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ рдпрд╣рд╛рдБ "рдЖрд╕реНрдердЧрд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЛрдб рдХреЗ рд▓рд┐рдП ...")

рд╣рдордиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рдлрд░реНрдб рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рдорд░реНрдерди рдХреЛ purchases are null рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред ( рджреЗрдЦреЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз )

рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рд╕реЗ рдХреБрдЫ рд░рд╕реАрджреЗрдВ рджреЗрдиреА рд╣реЛрдВрдЧреА, рд╕рд╛рде рд╣реА рдЕрдкрдиреА рд░рд╕реАрджреЛрдВ рдХреЛ рднреА рдорд╛рдиреНрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд░рд╕реАрдж рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ
рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рд░рд┐рдкреНрд▓реЗрд╕ рд╣реЛрдиреЗ рдФрд░ рдирдП рдЯреЛрдХрди рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рд░рд┐рдпрд▓рдЯрд╛рдЗрдо рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╛ рдЖрдк рдХреЗрд╡рд▓ IAPHUB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП I рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛?

рдЬреИрд╕рд╛ рдХрд┐ @ рдЖрдИрдлрдм рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ onPurchasesUpdated рдХреЛ purchases рддрд░реНрдХ рдХреЗ рд╕рд╛рде null рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм DEFERRED рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Google рдбреЙрдХреНрд╕ рд╕реЗ :

рдЖрд╕реНрдердЧрд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЛрдб рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдРрдк рдХреЛ рдЦрд░реАрджрд╛рд░реА рдХреА рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдпрд╛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХреЗ рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ BuyUUpdatedListener рдХреЛ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рддреЛ рдпрд╣ рд╕рд┐рд░реНрдл рдЙрд╕ рд╢реНрд░реЛрддрд╛ рдХреЗ рдЕрдВрджрд░ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдмрд╛рдд рд╣реИред

рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдХрд┐ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  • рдкрд┐рдЫрд▓реА рд╕рджрд╕реНрдпрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╡рд╛рджрд╛ рд╣рд▓ рдХрд░рдирд╛
  • undefined рд╕рд╛рде рд╡рд╛рджрд╛ рд╣рд▓ рдХрд░рдирд╛
  • PURCHASE_DEFERRED рдХреЛрдб рдХреЗ рд╕рд╛рде рд╡рд╛рджрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

iutin picture iutin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

coldfins picture coldfins  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

HamzaIkram2727 picture HamzaIkram2727  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hakkikonu picture hakkikonu  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Symyon picture Symyon  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ