рей.рей.реп (рд▓реЗрдХрд┐рди рдпрд╣ рднреА рей.реж.реж рдФрд░ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛ рдЕрдиреБрднрд╡)
0.59.9 рд╣реИ
iOS (Android рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛)
рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ getAvailablePurchases
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ
рд╣рд░ рдмрд╛рд░ рд╕рдорд╛рди рд▓рдВрдмрд╛рдИ
рд╣рд░ рдмрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгреА рдореИрдВ getAvailablePurchases
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ
рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ getAvailablePurchases
рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгреА рд▓рдВрдмрд╛рдИ рдХрд╣рддрд╛ рд╣реВрдВ
рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдирджреЗрди рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддреЗ рдореЗрдВ 50+ рд▓реЗрдирджреЗрди рд╣реИред
handleOnPressRestore = async () => {
return this.setState({ isLoadingRestorePurchases: true }, async () => {
try {
// Get the previous purchases of the current user
const purchases = await RNIap.getAvailablePurchases();
// Get the latest receipt from the purchases to validate
const { transactionReceipt, productId, transactionDate } = this.getLatestPurchase(purchases);
console.log(purchases.length, productId, transactionDate);
// Validate the receipt on our server
await this.props.validateSubscriptionReceipt(productId, transactionReceipt);
// The validation result is handled in componentDidUpdate
} catch (err) {
throw err;
} finally {
this.setState({ isLoadingRestorePurchases: false });
}
});
}
getLatestPurchase = (purchases: RNIap.ProductPurchase[]): RNIap.ProductPurchase => {
// First, sort the array, so the latest purchase is on top
// https://github.com/dooboolab/react-native-iap/issues/532#issuecomment-503174711
const sortedPurchases = purchases.sort((a, b) => b.transactionDate - a.transactionDate);
const purchase = sortedPurchases[0];
return purchase;
}
рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рд╕рд╛рде, рдЬрдм рдореИрдВ "рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЦрд░реАрдж" рджрдмрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рдЕрд▓рдЧ рд▓реЙрдЧ рдорд┐рд▓рддреЗ рд╣реИрдВ:
рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЖрдиреЗ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмреАрдЪ рдореЗрдВ рдПрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде "рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЦрд░реАрдж" рдХреЛ 6 рдмрд╛рд░ рджрдмрд╛рдПрдВ:
// purchases.length, productId, transactionDate
9 "com.app.sub" 1565182529000
21 "com.app.sub" 1565181329000
22 "com.app.sub" 1565183001000
42 "com.app.sub" 1565183001000
53 "com.app.sub" 1565182529000
55 "com.app.sub" 1565183001000
15 "com.app.sub" 1565182529000
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рд░рдгреА рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрдЧреА, рд╣реИ рдирд╛? рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
getAvailablePurchases()
рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЗрд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ
рдореИрдВ рдпрд╣ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрддрд░рдирд╛рдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдореМрдХрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╡реИрдз рд░рд╕реАрдж рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдпрд╣ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдПрдкреНрдкрд▓ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╕рд┐рд░реНрдл restoreCompletedTransactions()
рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд╛рдкрд╕ рджреЗрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ getPurchaseHistory()
рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдореЗрд░реЗ рдРрдк рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рдЦрд░реАрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рд╕рджрд╕реНрдпрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ iap рдбреЙрдХреНрд╕ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, getAvailablePurchases()
рдЙрдкрднреЛрдЧреНрдп рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдПрдХ рд╕рджрд╕реНрдпрддрд╛ "рдЙрдкрднреЛрдЬреНрдп" рдпрд╛ "рдЧреИрд░-рдЙрдкрднреЛрдЬреНрдп" рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ "рдСрдЯреЛ-рдЕрдХреНрд╖рдп рд╕рджрд╕реНрдпрддрд╛" рд╣реИ рдЗрд╕рд▓рд┐рдП getPurchaseHistory()
рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐PurchaseHistory () рдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгреА рд▓рдВрдмрд╛рдИ рднреА рджреАред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдЬреИрд╕реА рд╕реНрдерд┐рддрд┐ рдиреЗ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рдерд╛, рдПрдХ рдмрд╛рд░ рдХрд┐рд╕реА рднреА рд▓реЗрдирджреЗрди рдХреА рд░рд╕реАрдж рдХреЛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, Apple рджреНрд╡рд╛рд░рд╛ latest_receipt_info
рд╕рд░рдгреА рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡реИрд╕реЗ рднреА рдпрд╣ рд╕рдм рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБ (рдЕрдЧрд░ рдпрд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЛрдб рддреНрд░реБрдЯрд┐ рд╣реИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдореИрдВ рдПрдХ рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рднреАрддрд░ рдРрдкреНрдкрд▓ рдЖрдИрдбреА рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рджреВрд╕рд░реЗ рдЦрд╛рддреЗ рд╕реЗ рдХреА рдЧрдИ рдЦрд░реАрджрд╛рд░реА рд╡рд╛рдкрд╕ рд╣реЛ рдЬрд╛рддреА рд╣реИред
Ex:
1 - рдореИрдВрдиреЗ рдЕрдХрд╛рдЙрдВрдЯ [email protected] рдХреЗ рд╕рд╛рде рдЦрд░реАрджрд╛рд░реА рдХреА
2 - Apple id рдХреЛ [email protected] рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛
3 - getAvailablePurchases рдиреЗ [email protected] рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдХреА рдЧрдИ рдЦрд░реАрджрд╛рд░реА рдХрд╛ рд▓реЗрдирджреЗрди рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рджрд┐рдпрд╛
рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓рд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдбрд┐рд╡рд╛рдЗрд╕ (рдлрд╝реИрдХреНрдЯрд░реА рд░реАрд╕реЗрдЯ) рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЛ getPurchaseHistory()
рдФрд░ getAvailablePurchases
рд░реИрдВрдбрдо рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реВрдВред
рдЦрд░реАрдж рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрдкрд▓ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ:
"Users restore transactions to maintain access to content they've already purchased. For example, when they upgrade to a new phone, they don't lose all of the items they purchased on the old phone. Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button."
@ Ssg-luke рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ restoreCompletedTransactions
рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Apple рдбреЗрд╡рд▓рдкрд░ рдлрд╝реЛрд░рдо рд╡рд┐рд╖рдп рдорд┐рд▓рд╛ред
https://forums.developer.apple.com/thread/115242
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ:
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рд▓реЗрдирджреЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдРрдк рдиреЗ рдЕрднреА рддрдХ рдлрд┐рдирд┐рд╢рдЯреНрд░рд╛рдВрд╕рдХреНрд╢рди рдирд╣реАрдВ рдХрд╣рд╛ рд╣реИред
https://forums.developer.apple.com/thread/115242#thread -post-355444
рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕реА рдЙрдкрдХрд░рдг рдкрд░ рдЕрдиреНрдп рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддреЗ рд╣реИрдВред рддреЛ рдХреНрдпрд╛ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЦрд╛рддреЛрдВ рдХрд╛ рд▓реЗрди-рджреЗрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╣реА рдЙрдкрдХрд░рдг рдкрд░, рдмрд╕ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ "рд╕рдорд╛рдкреНрдд" рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ?
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рд╕рднреА рд▓реЗрдирджреЗрди рдкрд░ рдПрдХ рд▓реВрдк рдЪрд▓рд╛рдпрд╛, рдФрд░ рдЙрди рд╕рднреА рдкрд░ finishTransactionIOS
рдХрд╛ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ рдпрд╛ getAvailablePurchases()
рдХрд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рд╛ ... рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдирдП рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддреЗ рдореЗрдВ рд╣реВрдВ рдФрд░ рд▓реЗрдирджреЗрди рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддреЗ рд╕реЗ рд╣реИрдВ?
рдпрд╣ рднреА рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @fcandiani рдХреНрдпрд╛ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐PurchaseHistory () рдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгреА рд▓рдВрдмрд╛рдИ рднреА рджреАред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдЬреИрд╕реА рд╕реНрдерд┐рддрд┐ рдиреЗ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рдерд╛, рдПрдХ рдмрд╛рд░ рдХрд┐рд╕реА рднреА рд▓реЗрди-рджреЗрди рд░рд╕реАрдж рдХреЛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рднреА рдкреНрд░рд╛рдкреНрддрд┐рдпреЛрдВ рдХреЛ Apple рджреНрд╡рд╛рд░рд╛ latest_receipt_info рд╕рд░рдгреА рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
@ Ssg-luke рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВрдиреЗ рд╕рднреА рд▓реЗрдирджреЗрди рдкрд░ рдПрдХ рд▓реВрдк рднреА рдЪрд▓рд╛рдпрд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рдирд┐рд╢рдЯреНрд░рд╛рдВрд╕рдЖрдИрдУрдПрд╕ рдХреЗ рд╕рд╛рде рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред рдореЗрд░реЗ рд▓реЗрди-рджреЗрди рд╕реНрд╡рддрдГ-рдирд╡реАрдиреАрдХрд░рдг рд╕рджрд╕реНрдпрддрд╛ рд╣реИрдВред
рд▓рдЧрднрдЧ рд╡реИрд╕рд╛ рд╣реА рд╕рд╛рдордирд╛ред рдореИрдВ рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди, рд╕рдорд╕реНрдпрд╛ рдФрд░ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
3.5.9 рд╣реИ
0.60.5
рдЖрдИрдУрдПрд╕
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдПрдХ рдмрд╛рд░ рд╕рджрд╕реНрдпрддрд╛ рд▓реА , getAvailablePurchases
рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдЦрд░реАрдж рд╡рд╛рдкрд╕ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
getAvailablePurchases
рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЦрд░реАрдж рд╡рд╛рдкрд╕ рдЖ рд░рд╣реА рд╣реИ,
рддрд╛рдЬрд╛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ред
getAvailablePurchases
рдХреЙрд▓ рдХрд░реЗрдВ, рдХреЛрдИ рдЦрд░реАрджрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд)purchaseUpdatedListener
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ RNIap.finishTransactionIOS(subscription.transactionId);
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдХрд┐ undefined
(рдЬреИрд╕рд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдореНрдореАрдж рд╣реИ)getAvailablePurchases
рдХреЙрд▓ рдХрд░реЗрдВ, рдПрдХ рдЦрд░реАрдж рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд)getAvailablePurchases
рдХреЙрд▓ рдХрд░реЗрдВ, рджреЛ рдЦрд░реАрджрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╣рд░ рдПрдХ рдЕрд▓рдЧ transactionId
{
originalTransactionDateIOS: 1571144840000
originalTransactionIdentifierIOS: "1000000579413333"
productId: "io.appmasters.lowcarb.development"
transactionDate: 1571145019000
transactionId: "1000000579415509"
transactionReceipt: "MIIVnQYJKoZIhvcN..."
},
{
originalTransactionDateIOS: 1571144840000
originalTransactionIdentifierIOS: "1000000579413333"
productId: "io.appmasters.lowcarb.development"
transactionDate: 1571144839000
transactionId: "1000000579416705"
transactionReceipt: "MIIVnQYJKoZIhvcN...."
}
getAvailablePurchases
рдХреЙрд▓ рдХрд░реЗрдВ, рддреАрди рдЦрд░реАрджрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╣рд░ рдПрдХ рдЕрд▓рдЧ transactionId
(рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд╕рдорд╛рди рдирд╣реАрдВ):{
originalTransactionDateIOS: 1571144840000
originalTransactionIdentifierIOS: "1000000579413333"
productId: "io.appmasters.lowcarb.development"
transactionDate: 1571145739000
transactionId: "1000000579423546"
transactionReceipt: "MIIb1AYJKoZIhvcN..."
},{
originalTransactionDateIOS: 1571144840000
originalTransactionIdentifierIOS: "1000000579413333"
productId: "io.appmasters.lowcarb.development"
transactionDate: 1571145019000
transactionId: "1000000579426352"
transactionReceipt: "MIIb1AYJKoZI..."
},{
originalTransactionDateIOS: 1571144840000
originalTransactionIdentifierIOS: "1000000579413333"
productId: "io.appmasters.lowcarb.development"
transactionDate: 1571144839000
transactionId: "1000000579426353"
transactionReceipt: "MIIb1AYJKoZIhvcN..."
}
getAvailablePurchases
рдХреЙрд▓ рдХрд░реЗрдВ, рдЪрд╛рд░ рдЦрд░реАрджрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╣рд░ рдПрдХ рдЕрд▓рдЧ transactionId
(рдкрд┐рдЫрд▓реЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд╕рдорд╛рди рдирд╣реАрдВ) ...рдпрд╣ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рдбреЙрдХреНрд╕ рдкрд░ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред
рдореИрдВ рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред
getAvaialblePurchases () рдореЗрд░реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдкрд░реАрдХреНрд╖рдг рдЦрд╛рддреЗ рдкрд░ 150+ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ getAvailablePurchases () рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрдВрддрд┐рдо рдЦрд░реАрдж рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рднреА рд╕реНрдЯреЛрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирдП рдлреЛрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрднреА рднреА рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдпреВрдЬрд░ рдЖрдИрдбреА рдФрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (рдЖрдИрдУрдПрд╕ рдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб) рд╕реЗ рдЬреБрдбрд╝реЗ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдВрддрд┐рдо рдЦрд░реАрдж рдХрд░реЗрдВрдЧреЗред рдХреЙрд▓ рдХрд░рдирд╛ getAvailablePurchases () рдПрдХ рдорд┐рдирдЯ рдХреЗ рдХрд░реАрдм рд▓реЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдЗрд╕ рдЯреНрд░рд┐рдЧрд░рд┐рдВрдЧ рдХреЙрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╢реНрд░реЛрддрд╛ рдЕрдкрдиреА рдЦрд░реАрджрд╛рд░реА рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдордиреЗ рдЕрдкрдиреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:
1) рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ:
a) рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╡реИрдз рдЕрдВрддрд┐рдо рдЦрд░реАрдж рд╣реИред
b) рдпрджрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ DB рдореЗрдВ рдХреЛрдИ рд╕реНрдерд╛рдиреАрдп рд╕рд╣реЗрдЬреА рдЧрдИ рдЦрд░реАрджрд╛рд░реА рд╣реИ рдпрд╛ рдирд╣реАрдВ
c) рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдХреЛрдИ рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рджреГрд╢реНрдп рджрд┐рдЦрд╛рдПрдВред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд╣рдо getAvailablePurchases () рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдереЗ рдХрд┐ рдХреНрдпрд╛ рдЕрдВрддрд┐рдо рдЦрд░реАрдж рдЕрднреА рднреА рд╡реИрдз рдереАред рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдирд╣реАрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред рд╣рдо 59 рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдПрдХ рдФрд░ рджрд░реНрдж рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдирд┐рдкрдЯрдирд╛ рд╣реИред
@ramakula рдФрд░ рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рд╕рджрд╕реНрдпрддрд╛ рд░рджреНрдж рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдиреЗ рдмрддрд╛рдпрд╛ рдерд╛, рдЖрдк рдЕрдВрддрд┐рдо рддрд┐рдерд┐ рддрдХ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд╕рджрд╕реНрдпрддрд╛ рд░рдЦреЗрдВрдЧреЗ рдФрд░ "рдЦрд░реАрдж" рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдореБрджреНрджрд╛ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП" рдпрд╛ "рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
getAvaialblePurchases () рдореЗрд░реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдкрд░реАрдХреНрд╖рдг рдЦрд╛рддреЗ рдкрд░ 150+ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ getAvailablePurchases () рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрдВрддрд┐рдо рдЦрд░реАрдж рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рднреА рд╕реНрдЯреЛрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирдП рдлреЛрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрднреА рднреА рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдпреВрдЬрд░ рдЖрдИрдбреА рдФрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (рдЖрдИрдУрдПрд╕ рдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб) рд╕реЗ рдЬреБрдбрд╝реЗ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдВрддрд┐рдо рдЦрд░реАрдж рдХрд░реЗрдВрдЧреЗред рдХреЙрд▓ рдХрд░рдирд╛ getAvailablePurchases () рдПрдХ рдорд┐рдирдЯ рдХреЗ рдХрд░реАрдм рд▓реЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдЗрд╕ рдЯреНрд░рд┐рдЧрд░рд┐рдВрдЧ рдХреЙрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╢реНрд░реЛрддрд╛ рдЕрдкрдиреА рдЦрд░реАрджрд╛рд░реА рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдордиреЗ рдЕрдкрдиреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:
- рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ:
a) рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╡реИрдз рдЕрдВрддрд┐рдо рдЦрд░реАрдж рд╣реИред
b) рдпрджрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ DB рдореЗрдВ рдХреЛрдИ рд╕реНрдерд╛рдиреАрдп рд╕рд╣реЗрдЬреА рдЧрдИ рдЦрд░реАрджрд╛рд░реА рд╣реИ рдпрд╛ рдирд╣реАрдВ
c) рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдХреЛрдИ рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рджреГрд╢реНрдп рджрд┐рдЦрд╛рдПрдВред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд╣рдо getAvailablePurchases () рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдереЗ рдХрд┐ рдХреНрдпрд╛ рдЕрдВрддрд┐рдо рдЦрд░реАрдж рдЕрднреА рднреА рд╡реИрдз рдереАред рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдирд╣реАрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред рд╣рдо 59 рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдПрдХ рдФрд░ рджрд░реНрдж рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдирд┐рдкрдЯрдирд╛ рд╣реИред
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдо рд░рд╕реАрдж рд╕реЗ рдирд╡реАрдирддрдо рдЦрд░реАрдж рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдХреЗ, рдкреБрд░рд╛рдиреЗ-рдкреБрд░рд╛рдиреЗ рд▓реЗрдирджреЗрди рдХреЗ рд╕рд╛рде: рд╕рдЪ рд╣реИ рдХрд┐ рд╣рдо рдирд╡реАрдирддрдо рд╕рджрд╕реНрдпрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ рдСрдЯреЛ-рдирд╡реАрдХрд░рдгреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП)ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдЯреЛ-рдЕрдХреНрд╖рдп рд╕рджрд╕реНрдпрддрд╛ рдЦрд░реАрдж рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЖрджрд░реНрд╢ рддрд░реАрдХрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рд╕рднреА рд▓реЗрдирджреЗрди рдкрд░ рдПрдХ рд▓реВрдк рднреА рдЪрд▓рд╛рдпрд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рдирд┐рд╢рдЯреНрд░рд╛рдВрд╕рдЖрдИрдУрдПрд╕ рдХреЗ рд╕рд╛рде рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред рдореЗрд░реЗ рд▓реЗрди-рджреЗрди рд╕реНрд╡рддрдГ-рдирд╡реАрдиреАрдХрд░рдг рд╕рджрд╕реНрдпрддрд╛ рд╣реИрдВред