
рдирдорд╕реНрдХрд╛рд░ рд╣реЗрдмреНрд░реЛрд╕реЛрд╕рд┐рдЯреА! рдпрд╣ рдЖрд▓реЗрдЦ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OAuth 2.0 рдкрд░ рдЖрдзрд╛рд░рд┐рдд Z-Payment API рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рд╣рдо рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрдВрдЬреАрдХрд░рдг рд╣рдореЗрд╢рд╛ рдЖрд▓рд╕реА рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬрд╛рдирдХрд╛рд░реА (рдХрдо рд╕реЗ рдХрдо рдореЗрд▓ рджреНрд╡рд╛рд░рд╛) рд╕рд╛рдЭрд╛ рдХрд░рдиреА рд╣реИ, рдФрд░ рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрд▓рд╕реНрдп рджреБрдЧрдирд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗрд╡рд╛рдПрдВ рд╕реНрд╡рдпрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЗрдб-рднреБрдЧрддрд╛рди рдЕрдм рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИред
рдкрд░рд┐рдЪрдп
рд╣рд╛рд▓ рд╣реА рдореЗрдВ,
Z-Payment рдЯреАрдо рдиреЗ OAuth 2.0 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рддрдВрддреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ Z-Payment рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдмрдирд╛рдиреЗ рдФрд░ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдЙрдирдХреА рд╕рд╣рдорддрд┐ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рд╛рдЗрдЯ рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 3 рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ рдкреВрд░реА рдХрд░рдиреА рд╣реЛрдВрдЧреА:
- Z- рдкреЗрдореЗрдВрдЯ рдкрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реЗрд╢рди рдХрд░рд╡рд╛рдПрдВ
- рдПрдХ рд╕рд╛рдЗрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ
- рд╕рд╛рдЗрдЯ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд Z- рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдЬреЗрдб-рдкреЗрдореЗрдВрдЯ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЬреЗрдб-рдкреЗрдореЗрдВрдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред рдПрдХ рд╕рдлрд▓ рдЙрджрд╛рд╣рд░рдг
рдЬреЗрдб-рдЪреЗрдВрдЬ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 4 рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:- Z- рднреБрдЧрддрд╛рди рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╕рдВрдХреНрд░рдордг
- рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рддреГрддреАрдп рдкрдХреНрд╖ (рдЖрдк) рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд╡рдзрд╛рди рд╕реЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Z-Payment рдкрд░ рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛
- рдПрдХреНрд╕реЗрд╕ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдкрд░ рдХреЛрдб рдорд╛рди рдкрд╛рд╕ рдХрд░рдирд╛
- Z-Payment API рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд░реНрд╡рд░ access_token рдПрдХреНрд╕реЗрд╕ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЕрдм рдХреНрд░рдо рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ
рджреА: рд╕рд╛рдЗрдЯред
рдХрд╛рд░реНрдп Z- рднреБрдЧрддрд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ
рдХреЛ рдЕрдзрд┐рдХреГрдд / рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реИред
рдЪрд░рдг 1
Z- рднреБрдЧрддрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЖрдк рдкрддреЗ рдореЗрдВ GET рдпрд╛ POST рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
z-payment.ru/enter.php
z-payment.ru/enter.php
рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде:
client_id - рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░, рдПрдХ рдЪрд╛рд░-рдЕрдВрдХреАрдп, Z- рднреБрдЧрддрд╛рди рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╕реНрдЯреЛрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рд╕рд╛рдЗрдЯ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ - рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░, рд╡рд╣ рдкрддрд╛ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдХрд╛ рдбреЛрдореЗрди рд╕реНрдЯреЛрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдореБрдЦреНрдп рдбреЛрдореЗрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
рдкреНрд░рджрд░реНрд╢рди - рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреГрд╖реНрда рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рдЧреБрдВрдЬрд╛рдЗрд╢ - рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░, рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЕрдиреБрд░реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдпрд╛ рд╕реНрдерд╛рди рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣рд╛рдВ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдиреБрд░реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:
0 | f_name | рдкрд╣рд▓рд╛ рдирд╛рдо |
1 | s_name | рдЙрдкрдирд╛рдо |
2 | m_name | рдордзреНрдп рдирд╛рдо |
3 | birth_day | рдЬрдиреНрдо рдХреА рддрд╛рд░реАрдЦ |
4 | рд╕рдореВрд╣ | рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ |
5 | рд▓рд┐рдВрдЧ | рдкреЙрд▓ |
6 | e_mail | рдореЗрд▓ |
7 | рдлрд╝реЛрди | рдореЛрдмрд╛рдЗрд▓ рдирдВрдмрд░ |
8 | рджреЗрд╢ | рджреЗрд╢ |
9 | рд╢рд╣рд░ | рд╢рд╣рд░ |
10 | рд╕рдВрддреБрд▓рди | рдмрдЯреБрдЖ рд╕рдВрддреБрд▓рди |
response_type рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдпрд╣ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ: рдХреЛрдб - рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рд░реНрд╡рд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдпрд╛ рдЯреЛрдХрди рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдпрджрд┐ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ GET рдЕрдиреБрд░реЛрдз рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
GET: z-payment.ru/enter.php?client_id=ID__&redirect=http://.ru/login&dispaly=page&scope=f_name,s_name,m_name,phone,city,e_mail&response_type=code
рдЪрд░рдг 2
рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдкреГрд╖реНрда рдкрд░ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдЙрд╕реЗ рддреАрд╕рд░реЗ рд╡реНрдпрдХреНрддрд┐ (рдЖрдкрдХреА рд╕рд╛рдЗрдЯ) рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЖрдк рдЧреБрдВрдЬрд╛рдЗрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдкрд╣рд▓реЗ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдпрджрд┐ рдЙрд╕рдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рд╣рдорддрд┐ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рд╣рдорддрд┐ рд╕реЗ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рдореЗрдВ, рдЙрд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреГрд╖реНрда рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЪрд░рдг 3
рд╡рд╛рдкрд╕ рд▓реМрдЯрдХрд░, GET рд╡рд┐рдзрд┐ рдХреЛрдб рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд░реЗрдЧреА, рдЬрд┐рд╕рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рд╣рдорддрд┐ рджреА рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рдЬреАрд╡рдирдХрд╛рд▓ 15 рдорд┐рдирдЯ рд╣реИ, рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЛ рдЕрдиреБрд░реЛрдз рд╕реНрдерд▓ рд╕реЗ access_token API рддрдХ рдкрд╣реБрдВрдЪ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
GET: REDIRECT_URI?code=a2a56603b8f57a6fa4dff77380df05206c883f011c40b72630bb5ed6f6479e52a8e
:
GET: REDIRECT_URI?error=invalid_request&error_description=Invalid+display+parameter
рдЪрд░рдг 4
рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ, рд╣рдо рдкрддреЗ
z-payment.ru/api/get_access_token.php рдкрд░ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдХрд░ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЪрд░рдг 1 рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ, GET рдпрд╛ POST рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП:
client_id - рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░, рдЪрд╛рд░-рдЕрдВрдХреАрдп, z- рднреБрдЧрддрд╛рди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╕реНрдЯреЛрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, Z- рднреБрдЧрддрд╛рди рд╡реНрдпрд╛рдкрд╛рд░реА рдореЗрдВ рдПрдХ рджреБрдХрд╛рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдКрдкрд░ рджреЗрдЦреЗрдВ)
рдХреЛрдб - рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░, рдЪрд░рдг 3 рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдХреЛрдб (рдКрдкрд░ рджреЗрдЦреЗрдВ)
format_answer - рд╡реИрдХрд▓реНрдкрд┐рдХ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдк, json рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ: json, getред
client_secret - рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░, рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИред рдпрд╣ рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдорд░реНрдЪреЗрдВрдЯ рдХреА рд╕реНрдЯреЛрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдЪрд┐рдкрдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╣реИрд╢ md5 рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирддрд╛ рд╣реИред
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдбреЗрдЯрд╛: client_id + code + MerchantKey - рдЗрд╕рдореЗрдВ рд╕реЗ рд╣рдо MD5 рд▓реЗрддреЗ рд╣реИрдВ
рдЕрдиреБрд░реЛрдз рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдЙрддреНрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
access_token, expires_in рдкреНрд░рдореБрдЦ рдЬреАрд╡рдирдХрд╛рд▓ (рд╕реЗрдХрдВрдб рдореЗрдВ), user_id рд╡реЙрд▓реЗрдЯ ZP рдирдВрдмрд░ user_verification - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реЛрдиреЗ рдкрд░ рд╣рд╛рдБ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ), рд╕рд╛рде рд╣реА рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯред
рдпрд╣ рдЕрдм рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ
рдкреВрд░реНрд╡рдЧрд╛рдореА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдореИрдВ рдЗрд╕реЗ php 5.3 рдкрд░ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ MVC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рддреЛ, рдХрд╛рд░реНрдп Z- рднреБрдЧрддрд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реИред рдореИрдВ рддреБрд░рдВрдд рдХреЛрдб рдкрд░ рдЖрд░рдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
- рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ,
- рдореИрдВ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ IUserStorage рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рднреА рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдПрдХ рд╕рддреНрд░ (SessionUserStorage), рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ (DbUserStorage) рдпрд╛ рдПрдХ рдлрд╝рд╛рдЗрд▓ (FileUserStorage), рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдХреЛрдб рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдЙрдмрд╛рдК рд╣реИред
PHP рдХреЛрдб рд╣реА define("SHOP_ID", "0001"); define("MERCHANT_KEY", "password"); namespace Example; interface IUserStorage { public function load(); public function save(array $data); public function erase(); } class UserManager { const TOKEN_URL = "https://z-payment.ru/api/get_access_token.php"; protected $storage; protected $userInfo; protected $controller; public function __construct(\Example\IUserStorage $storage) { $this->storage = $storage; $this->userInfo = $this->storage->load(); } public function getUserInfo($field = null) { if (null === $field) return $this->userInfo; if (isset($this->userInfo[$field])) return $this->userInfo[$field]; return null; } public function isLogin() { return ($this->userInfo != null); } public function getAccount() { if (!$this->isLogin()) return null; return $this->userInfo['user_id']; } public function isCertified() { return ($this->getUserInfo('user_verification') == 'yes'); } public function Login() { $code = $this->controller->getRequest()->get("code"); $client_secret = md5(SHOP_ID . $code . MERCHANT_KEY); $params = array( 'client_id=' . urlencode(SHOP_ID), 'code=' . urlencode($code), 'format_answer=' . 'json', 'client_secret=' . urlencode($client_secret) ); $curl = curl_init(self::TOKEN_URL); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, implode("&", $params)); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result); if ($result->error != null) return false; $this->storage->save((array)$result); return true; } public function LogOut() { $this->storage->erase(); } public function setController(\Example\Controller\Base $controller) { $this->controller = $controller; $controller->getView()->isLogin = $this->isLogin(); $client_id = SHOP_ID; $redirect_uri = "http://example_site_domain.org/login"; $display = "page"; $scope = "f_name,s_name,m_name,sex,birth_day,group,e_mail,phone,country,city,balance"; if ($this->isLogin()) { $controller->getView()->userName = $this->userInfo['f_name'] . " " . $this->userInfo['s_name']; } else { $controller->getView()->linkZpAuth = sprintf("https://z-payment.ru/enter.php?client_id=%s&redirect_uri=%s&display=%s&scope=%s", $client_id, $redirect_uri, $display, $scope); } } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдиреНрдп рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рд╡реАрдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред :)
рдореЗрд░реЗ рд╡рд┐рдирдореНрд░ рдХрд╛рдо рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрдкрдХреЗ рдзреИрд░реНрдп рдХреЗ рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЙрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдкреАрдбрд╝рд╛ рджреЗрдиреЗ рд▓рдЧрд╛ рдерд╛ - "рдЕрдЧрд░ рдореБрдЭреЗ рд╡реАрдХреЗ, рдЬреАрдореЗрд▓, рдлреЗрд╕рдмреБрдХ, рдЗрддреНрдпрд╛рджрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдХрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ ZP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдлрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?" , рдореИрдВ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реВрдВ: рдЕрдиреНрдп рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдХрдИ OAuth рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, Z- рдкреЗрдореЗрдВрдЯ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЬреЛ рдИ-рдХреЙрдорд░реНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЖрдк рдкреНрд░рд▓реЗрдЦрди
рдЗрдВрдЯрд░рдлреЗрд╕рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕.рдЬрд╝рд┐рдк рдбреЙрдХреНрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЗрдб-рднреБрдЧрддрд╛рди рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ