рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдореБрджреНрд░реАрдХрд░рдг рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдиреЗрддрд╛ рд╣реИрдВред рдЬрд┐рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ, Google Play рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЖрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдирд╕реЗ рдЖрдп 3 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИ, рдЬрдмрдХрд┐ рдмрд╛рдж рдХрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ 1.5 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХрд▓ Google Play рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХрд▓ iTunes рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ 5 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдзрди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рддрд░реНрдХ рдЖрдЗрдЯреНрдпреВрдиреНрд╕ рднреБрдЧрддрд╛рди рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рддрд░рдл рд╕реЗ рдЖрдИрдЯреНрдпреВрдиреНрд╕ рднреБрдЧрддрд╛рди (рд╕рджрд╕реНрдпрддрд╛ рд╕рд╣рд┐рдд) рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдореМрдЬреВрджрд╛ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред
рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рджреЛ рднреБрдЧрддрд╛рди рд▓реЗрдирджреЗрди рд╕рддреНрдпрд╛рдкрди рдпреЛрдЬрдирд╛рдПрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИрдВ: рд╕рд░рд▓, рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдРрдк рд╕реНрдЯреЛрд░ рдФрд░ рдЬрдЯрд┐рд▓ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдХрдиреЗрдХреНрдЯ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рддреНрдпрд╛рдкрди рдЪрд░рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдХрдиреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рд▓реЗрдирджреЗрди рдХреА рдПрдХ рд╕рдлрд▓ рдкреБрд╖реНрдЯрд┐ рднреБрдЧрддрд╛рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд░рд▓ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдиреБрдХрд╕рд╛рди рдореЗрдВ
рдорд┐рдЯрд╛рдпрд╛ рд╣реБрдЖ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╢рд╛рдорд┐рд▓
рд╣реИ ред рдЬрдЯрд┐рд▓ рдлрд╛рдпрджреЛрдВ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛, рд╕рд╛рдВрд╕рд╛рд░рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЪрд╛рд░реНрдЬ рдХрд░рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрдВрддрд┐рдо рджреЛ рдмрд┐рдВрджреБ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдкреНрддрд╛рд╣ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдпрд╛ рд╢рд╛рдпрдж
рдХреБрдЫ рд╣рдлрд╝реНрддреЗ , рдЕрдЧрд░ рдЖрдк рдЕрдЪрд╛рдирдХ рдПрдХ рдЕрдпреЛрдЧреНрдп рдХреНрд░рд┐рд╕рдорд╕ рдХреА рдкреВрд░реНрд╡ рд╕рдВрдзреНрдпрд╛ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдЖрдХрд░реНрд╖рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдЦреБрд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ - рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд╛рд░реНрдЯ рдкрд░ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ:

рддреЛ рдЕрдореВрд░реНрдд рдЖрд╡реЗрджрди рдХреЗ рднреБрдЧрддрд╛рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рджрд┐рди рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдиреАрд▓рд╛ рд░рдВрдЧ рднреБрдЧрддрд╛рди рд╕рддреНрдпрд╛рдкрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЧреНрд░реАрди - рдЕрдиреБрд░реЛрдз рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрдк рд╕реНрдЯреЛрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рдФрд░ рд▓рд╛рд▓ - рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЕрдиреБрд░реЛрдзред рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдбрд░рд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рднреБрдЧрддрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рд╕рд░реНрд╡рд░ рдХреА рдЕрдирджреЗрдЦреА рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрд╡реЗрджрди рдХреЛ рдХреНрдпрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЧреНрд░рд╛рдл рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдЕрдиреБрд░реЛрдз рд╕реБрд╡рд┐рдзрд╛ | рдХрд╛ рдкреНрд░рддрд┐рд╢рдд |
---|
рдЕрдкреБрд╖реНрдЯред рдирдХрд▓реА рднреБрдЧрддрд╛рди, рд╕рд╣реА рдХреЗ рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕реЗ рдпреБрдХреНрдд, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЙрдирдореЗрдВ рдХреЛрдИ рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИ, рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рднреБрдЧрддрд╛рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ | 0.7% |
рд░рд┐рдкреНрд▓реЗред рд╕рддреНрдпрд╛рдкрд┐рдд рднреБрдЧрддрд╛рди рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдЕрдиреБрд░реЛрдз, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ | 1% |
рдкрдЯрд╛рдЦреЗ рдХрд╛ рднреБрдЧрддрд╛рди (рдЬреИрд╕реЗ, рдЖрдИрдПрдкреА рдХреНрд░реИрдХрд░ , рдЖрджрд┐)ред рд╡реЗ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рддреНрдпрд╛рдкрди рднреБрдЧрддрд╛рди рдХреЗ рд▓рд┐рдП рднреЗрдЬрддреЗ рд╣реИрдВред | 9.3% |
рдирдХрд▓реАред рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП iTunes рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рднреБрдЧрддрд╛рди | 79% |
рдХреА рдкреБрд╖реНрдЯрд┐ рдХреАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪрд┐рдд рдЦрд░реАрджрд╛рд░реАред рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдЦрд╛рддреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрд░реАрдж рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЕрднрд┐рд╕рд░рдг рд╣реЛрддреА рд╣реИ | 10% |
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрди рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдпрд╛рддрд╛рдпрд╛рдд рдЦрд░реНрдЪ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рднреБрдЧрддрд╛рди рдЖрдЗрдЯреНрдпреВрдиреНрд╕ рддрдерд╛рдХрдерд┐рдд рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛
рдиреБрд╕реНрдЦрд╛ рд╣реИ ред рднреБрдЧрддрд╛рди рд▓реЗрдирджреЗрди рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреБрд╕реНрдЦрд╛ рдПрдХ рдмреЗрд╕ 64 рдПрдирдХреЛрдбреЗрдб JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред рдРрдк рд╕реНрдЯреЛрд░ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдирдХреЗ рдиреБрд╕реНрдЦрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрд╡рд╛рдм рдореЗрдВ, рдЖрдкрдХреЛ рдкрд░реНрдЪреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдХреБрдЫ рднреБрдЧрддрд╛рди рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред
рд╕рд╣реА рдиреБрд╕реНрдЦрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдЗрд╕рдХреЗ рдмрд╛рдж, рд╕рд╣реА рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):
$ php -r "var_dump(base64_decode('Re4LRece1PT='));" string(2453) "{ "signature" = "8iN4rY5iGNaTUrE=="; "purchase-info" = "PuRCh45e1nf0RM4tIoN=="; "pod" = "22"; "signing-status" = "0"; }" $ php -r "var_dump(base64_decode('PuRCh45e1nf0RM4tIoN=='));" string(784) "{ "original-purchase-date-pst" = "2013-02-18 10:05:51 America/Los_Angeles"; "purchase-date-ms" = "1361210751012"; "unique-identifier" = "aun1que1dent1f1er"; "original-transaction-id" = "1234567890"; "bvrs" = "220"; "app-item-id" = "123"; "transaction-id" = "1234567890"; "quantity" = "1"; "original-purchase-date-ms" = "1361210751012"; "unique-vendor-identifier" = "VEND0R-1DENT1F1ER"; "item-id" = "456"; "version-external-identifier" = "789"; "product-id" = "com.example.application.product.1"; "purchase-date" = "2013-02-18 18:05:51 Etc/GMT"; "original-purchase-date" = "2013-02-18 18:05:51 Etc/GMT"; "bid" = "com.example.application"; "purchase-date-pst" = "2013-02-18 10:05:51 America/Los_Angeles"; }"
рдПрдХ рдиреБрд╕реНрдЦрд╛ рдореЗрдВ рдЦрд░реАрдж рдбреЗрдЯрд╛, рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ рд╕реЗрд╡рд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реЛрддреА рд╣реИред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрд╛рдЗрдирд░реА рдФрд░ рдмреЗрд╕ 64 рдПрдирдХреЛрдбреЗрдб рд╣реИред рдЦрд░реАрдж рдбреЗрдЯрд╛ рднреА рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ рдФрд░ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред рдореИрдВ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдирддрд╛ рд╣реВрдВ:
рдЙрддреНрдкрд╛рдж-рдЖрдИрдбреА - рдЦрд░реАрджреЗ рдЧрдП рдЙрддреНрдкрд╛рдж рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░
рдмреЛрд▓реА - рдЖрд╡реЗрджрди рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред
рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреНрд╡реЗрд░реА рдЪрдпрдирдХрд░реНрддрд╛ - рдирдХрд▓реА рдкреНрд░рд╢реНрди - рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦреЗрдВ:
$ php -r "var_dump(base64_decode('CHuZH0iRECE1pt=='));" string(2281) "{ "signature" = "8iN4rY5iGNaTUrE=="; "purchase-info" = "4n0THeRPuRCh45e1nf0RM4tIoN=="; "pod" = "17"; "signing-status" = "0"; }" $ php -r "var_dump(base64_decode('4n0THeRPuRCh45e1nf0RM4tIoN=='));" string(656) "{ "original-purchase-date-pst" = "2012-07-12 05:54:35 America/Los_Angeles"; "purchase-date-ms" = "1342097675882"; "original-transaction-id" = "170000029449420"; "bvrs" = "1.4"; "app-item-id" = "450542233"; "transaction-id" = "170000029449420"; "quantity" = "1"; "original-purchase-date-ms" = "1342097675882"; "item-id" = "534185042"; "version-external-identifier" = "9051236"; "product-id" = "com.zeptolab.ctrbonus.superpower1"; "purchase-date" = "2012-07-12 12:54:35 Etc/GMT"; "original-purchase-date" = "2012-07-12 12:54:35 Etc/GMT"; "bid" = "com.zeptolab.ctrexperiments"; "purchase-date-pst" = "2012-07-12 05:54:35 America/Los_Angeles"; }"
рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдиреБрд╕реНрдЦрд╛ рд╣реИред рдмрд╕ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рд╕реЗ рдирд╣реАрдВред рдпрджрд┐ рдЖрдк iTunes Connect рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕ рднреБрдЧрддрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА:
$ wget 'https://buy.itunes.apple.com/verifyReceipt' -q --post-data='{"receipt-data":"CHuZH0iRECE1pt=="}' -O - {"receipt":{"original_purchase_date_pst":"2012-07-12 05:54:35 America/Los_Angeles", "purchase_date_ms":"1342097675882", "original_transaction_id":"170000029449420", "original_purchase_date_ms":"1342097675882", "app_item_id":"450542233", "transaction_id":"170000029449420", "quantity":"1", "bvrs":"1.4", "version_external_identifier":"9051236", "bid":"com.zeptolab.ctrexperiments", "product_id":"com.zeptolab.ctrbonus.superpower1", "purchase_date":"2012-07-12 12:54:35 Etc/GMT", "purchase_date_pst":"2012-07-12 05:54:35 America/Los_Angeles", "original_purchase_d
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡реЗ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХреЗред рдЖрдк
рдЙрддреНрдкрд╛рдж-рдЖрдИрдбреА рдХреА рддреБрд▓рдирд╛ рдХрд░рдХреЗ iTunes рдореЗрдВ 80% рдЯреНрд░реИрдлрд╝рд┐рдХ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдиреБрд╕реНрдЦрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рднреА рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде
рдмреЛрд▓реА рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкрдЯрд╛рдЦреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд░реЗрд╕рд┐рдкреАрдЬ рдмрд╣реБрдд рд╣реА рдЖрджрд┐рдо рд╣реИрдВ:
Y29tLnVydXMuaWFwLjk2NjU3Mjkw
ред рдбрд┐рдХреНрд░рд┐рдкреНрдЯ, рд╣рдореЗрдВ
com.urus.iap.96657290
рдорд┐рд▓рддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣рд╛рдВ рдкрд░ рдХрд┐рд╕реА рднреА рд░реЗрд╕рд┐рдкреА рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ - рдпрд╛ рддреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдпрд╛ рдЦрд░реАрдж рдбреЗрдЯрд╛ред рдРрд╕реЗ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдиреБрд╕реНрдЦрд╛ рдкрд░ рдЖрдЗрдЯреНрдпреВрдиреНрд╕
21002 рддреНрд░реБрдЯрд┐
рд▓реМрдЯрд╛рдПрдЧрд╛ ред
рдпрджрд┐ рдкрдЯрд╛рдЦреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЕрдкрдиреЗ рджрдо рдкрд░ рдиреБрд╕реНрдЦрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдИрдЯреНрдпреВрдиреНрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рднреА рд▓реЗрди-рджреЗрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд▓рд╛рдн рдЕрд░реНрдЬрд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрддреАрдд рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХреЛрдИ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдерд╛ред
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░
, рд╕рднреА рд▓реЗрдирджреЗрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рднреБрдЧрддрд╛рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдирдореВрдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдмреБрд░рд╛рдИ рдЕрдкреБрд╖реНрдЯ рд╡реНрдпрдВрдЬрдиреЛрдВ рд╣реИред рдиреАрдЪреЗ рдПрдХ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
$ php -r "var_dump(base64_decode('P0dDe1NyRECE1pt=='));" string(613) "{"signing-status"="0";"purchase-info"="P0dDe1N0e1NF0==";"pid"="143";"signature"="1POdP1sD4jEe5t=";}" $ php -r "var_dump(base64_decode('P0dDe1N0e1NF0=='));" string(388) "{"unique-identifier"="an0theru1que1dent1f1er";"purchase-date"="2012-02-18 19:23:27 Etc/GMT";"original-transaction-id"="0123456789";"quantity"="1";"original-purchase-date"="2012-02-18 19:23:27 Etc/GMT";"bvrs"="123";"product-id"="com.example.application.product.1";"item-id"="456";"transaction-id"="0123456789";"bid"="com.example.application";}"
рд╕рд╣реА рдиреБрд╕реНрдЦрд╛ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдмрдЪрдд, рд▓реЗрдХрд┐рди рдпрд╣ рдиреБрд╕реНрдЦрд╛ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ - рдЖрдЦрд┐рд░рдХрд╛рд░, рдЗрд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдиреБрд╕реНрдЦрд╛ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ: рд╕рд╣реА рдЙрддреНрдкрд╛рдж рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдкреНрд░рд╢рдВрд╕рдиреАрдп рднреБрдЧрддрд╛рди рдбреЗрдЯрд╛, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВред рдЖрдкрдХреЛ iTunes рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдХреЗрд╡рд▓ 0.7% рдФрд░ рдЙрдкрдпреЛрдЧреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ 7% рд╣реИ)ред рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдХреЛрдб 21002 рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред
рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд░реНрд╡рд░ рдХреА рддрд░рдл рджрд┐рдЦрд╛рддреА рд╣реИ:
рд╕реАрдзреЗ iTunes рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЫреЛрдЯреЗ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ
рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рднреА рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЖрдк рдЧреНрд░рд╛рд╣рдХ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЧреБрдкреНрдд рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП рдЙрд╕реА рд╕рддреНрдпрд╛рдкрди рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рджрд╕реНрдпрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
$AppStore = new \AppStore\Client\AppStoreClient(); $AppStore->setPassword('secret shared password') ->setSandbox((bool) mt_rand(0,1)); $Status = $AppStore->verifyReceipt('5t4TUs==');
рдЖрдИрдЯреНрдпреВрдиреНрд╕ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлреЙрд░реНрдо рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛
object(AppStore\Client\Response\RenewableStatus)#7 (4) { ["latestReceipt":"AppStore\Client\Response\RenewableStatus":private]=> string(3460) "5t4TUs==" ["LatestReceiptInfo":"AppStore\Client\Response\RenewableStatus":private]=> object(AppStore\Client\Response\RenewableReceipt)#8 (11) { ["expiresDate":"AppStore\Client\Response\RenewableReceipt":private]=> string(13) "1363547483000" ["quantity":"AppStore\Client\Response\Receipt":private]=> int(1) ["productId":"AppStore\Client\Response\Receipt":private]=> string(35) "com.example.application.product.2" ["transactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "0987654321" ["purchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-02-18 20:11:23 Etc/GMT" ["originalTransactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "9078563412" ["originalPurchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-01-18 20:11:25 Etc/GMT" ["appItemId":"AppStore\Client\Response\Receipt":private]=> string(9) "456" ["versionExternalIdentifier":"AppStore\Client\Response\Receipt":private]=> string(0) "" ["bid":"AppStore\Client\Response\Receipt":private]=> string(19) "com.example.application" ["bvrs":"AppStore\Client\Response\Receipt":private]=> string(3) "123" } ["status":"AppStore\Client\Response\Status":private]=> int(0) ["Receipt":"AppStore\Client\Response\Status":private]=> object(AppStore\Client\Response\RenewableReceipt)#9 (11) { ["expiresDate":"AppStore\Client\Response\RenewableReceipt":private]=> string(13) "1363547483000" ["quantity":"AppStore\Client\Response\Receipt":private]=> int(1) ["productId":"AppStore\Client\Response\Receipt":private]=> string(35) "com.example.application.product.2" ["transactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "0987654321" ["purchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-02-18 20:11:23 Etc/GMT" ["originalTransactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "9078563412" ["originalPurchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-01-18 20:11:25 Etc/GMT" ["appItemId":"AppStore\Client\Response\Receipt":private]=> string(9) "456" ["versionExternalIdentifier":"AppStore\Client\Response\Receipt":private]=> string(0) "" ["bid":"AppStore\Client\Response\Receipt":private]=> string(19) "com.example.application" ["bvrs":"AppStore\Client\Response\Receipt":private]=> string(3) "123" } }
Google Play рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, iTunes рдкреНрд░рддреНрдпреЗрдХ рднреБрдЧрддрд╛рди рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рдиреБрд╕реНрдЦрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдЕрдЧрд▓реА рдмрд┐рд▓рд┐рдВрдЧ рдЕрд╡рдзрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдПрдХ рджрд┐рди рдкрд╣рд▓реЗ, iTunes рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЦрд╛рддреЗ рд╕реЗ рдкреИрд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рд╢рд┐рдХрд╛рдпрдд рджреЗрдЦреА рдХрд┐ рдирдП рдмрд┐рд▓рд┐рдВрдЧ рдЕрд╡рдзрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ 48 рдШрдВрдЯреЗ рдкрд╣рд▓реЗ рдирд╡реАрдиреАрдХрд░рдг рд╢реБрд▓реНрдХ рдкрд░ рдбреЗрдмрд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдкреНрд░рдпрд╛рд╕ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ
latest_receipt рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдбреЗрдЯрд╛ рдореВрд▓ рдиреБрд╕реНрдЦрд╛ рдХреЗ рдбреЗрдЯрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИред рдпрджрд┐ рд╕рджрд╕реНрдпрддрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд╡реАрдиреАрдХреГрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЦрд░реАрдж рдХрд╛ рдбреЗрдЯрд╛
рдирд╡реАрдирддрдо_receipt_info рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛,
рдирд╡реАрдирддрдо_receipt рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рдиреБрд╕реНрдЦрд╛
object(AppStore\Client\Response\RenewableStatus)#7 (4) { ["latestReceipt":"AppStore\Client\Response\RenewableStatus":private]=> string(3460) "ReNEW481E5t4TUs==" ["LatestReceiptInfo":"AppStore\Client\Response\RenewableStatus":private]=> object(AppStore\Client\Response\RenewableReceipt)#8 (11) { ["expiresDate":"AppStore\Client\Response\RenewableReceipt":private]=> string(13) "1363547483000" ["quantity":"AppStore\Client\Response\Receipt":private]=> int(1) ["productId":"AppStore\Client\Response\Receipt":private]=> string(35) "com.example.application.product.2" ["transactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "0987654321" ["purchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-02-18 20:11:23 Etc/GMT" ["originalTransactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "9078563412" ["originalPurchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-01-18 20:11:25 Etc/GMT" ["appItemId":"AppStore\Client\Response\Receipt":private]=> string(9) "456" ["versionExternalIdentifier":"AppStore\Client\Response\Receipt":private]=> string(0) "" ["bid":"AppStore\Client\Response\Receipt":private]=> string(19) "com.example.application" ["bvrs":"AppStore\Client\Response\Receipt":private]=> string(3) "123" } ["status":"AppStore\Client\Response\Status":private]=> int(0) ["Receipt":"AppStore\Client\Response\Status":private]=> object(AppStore\Client\Response\RenewableReceipt)#9 (11) { ["expiresDate":"AppStore\Client\Response\RenewableReceipt":private]=> string(13) "1361131883894" ["quantity":"AppStore\Client\Response\Receipt":private]=> int(1) ["productId":"AppStore\Client\Response\Receipt":private]=> string(35) "com.example.application.product.2" ["transactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "0987654312" ["purchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-01-18 20:11:23 Etc/GMT" ["originalTransactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "9078563412" ["originalPurchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-01-18 20:11:25 Etc/GMT" ["appItemId":"AppStore\Client\Response\Receipt":private]=> string(9) "456" ["versionExternalIdentifier":"AppStore\Client\Response\Receipt":private]=> string(0) "" ["bid":"AppStore\Client\Response\Receipt":private]=> string(19) "com.example.application" ["bvrs":"AppStore\Client\Response\Receipt":private]=> string(3) "123" } }
рдпрджрд┐ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐
21006 рд╣реЛ рдЬрд╛рддреА рд╣реИ $AppStore = new \AppStore\Client\AppStoreClient(); $AppStore->setPassword('secret shared password') ->setSandbox((bool) mt_rand(0,1)); try { $Status = $AppStore->verifyReceipt('ExP1ReD5t4TUs=='); } catch (\AppStore\Client\Response\ExpiredSubscriptionException $ex) { var_dump($ex->getStatus()); }
object(AppStore\Client\Response\RenewableStatus)#7 (4) { ["latestReceipt":"AppStore\Client\Response\RenewableStatus":private]=> string(0) "" ["LatestReceiptInfo":"AppStore\Client\Response\RenewableStatus":private]=> NULL ["status":"AppStore\Client\Response\Status":private]=> int(21006) ["Receipt":"AppStore\Client\Response\Status":private]=> object(AppStore\Client\Response\RenewableReceipt)#8 (11) { ["expiresDate":"AppStore\Client\Response\RenewableReceipt":private]=> string(13) "1361208738953" ["quantity":"AppStore\Client\Response\Receipt":private]=> int(1) ["productId":"AppStore\Client\Response\Receipt":private]=> string(35) "com.example.application.product.2" ["transactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "2143658709" ["purchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-01-18 17:32:18 Etc/GMT" ["originalTransactionId":"AppStore\Client\Response\Receipt":private]=> string(15) "2143658709" ["originalPurchaseDate":"AppStore\Client\Response\Receipt":private]=> string(27) "2013-01-18 17:32:19 Etc/GMT" ["appItemId":"AppStore\Client\Response\Receipt":private]=> string(9) "456" ["versionExternalIdentifier":"AppStore\Client\Response\Receipt":private]=> string(0) "" ["bid":"AppStore\Client\Response\Receipt":private]=> string(19) "com.example.application" ["bvrs":"AppStore\Client\Response\Receipt":private]=> string(3) "123" } }
рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб iTunes рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдпреЛрдЬрдирд╛ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ:
рд╡рд┐рд╡рд░рдг:
- рдЦрд░реАрдж - рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдЦрд░реАрдж
- рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ - рдКрдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рдбреЗрдЯрд╛ рдХрд╛ рд╕рддреНрдпрд╛рдкрди
- рдХрддрд╛рд░ - рд╕рддреНрдпрд╛рдкрд┐рдд рд╕рджрд╕реНрдпрддрд╛ рдбреЗрдЯрд╛ рдХрддрд╛рд░
- рдЖрд╡рдзрд┐рдХ рд╕рддреНрдпрд╛рдкрди - рд╕рдордп-рд╕рдордп рдкрд░ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рд╕рддреНрдпрд╛рдкрдиред рдпрджрд┐ рд╕рджрд╕реНрдпрддрд╛ рдирд╡реАрдиреАрдХреГрдд рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рд╣рдо рдмрд╛рдж рдХреЗ рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдиреБрд╕реНрдЦрд╛ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
рдореЗрд░реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, ~ 60% рдЖрдИрдЯреНрдпреВрдиреНрд╕ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рдирд╡реАрдиреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Google Play рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рди ~ 40% рд╣реИред рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЛрдВ рдкрд░ рдзрди рдХреА рдХрдореА рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ