рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рд╣рдордиреЗ QIWI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛! рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдореБрдЭреЗ qiwi рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╡рд┐рдХрдЯрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛:
рдХреАрд╡реА рд╕реЗ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреЛрдб<?php $s = new SoapServer('IShopClientWS.wsdl', array('classmap' => array('tns:updateBill' => 'Param', 'tns:updateBillResponse' => 'Response')));
рдмреЗрд╢рдХ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреБрдЫ "рдЕрдзрд┐рдХ рддреИрдпрд╛рд░" рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, PHP рднрд╛рд╖рд╛ рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рддреБрд░рдВрдд рдПрдХ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдВрдбрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдЪреВрдБрдХрд┐ рдореЗрд░реЗ рд╣рд╛рд▓рд┐рдпрд╛
рдкреНрд░рд╢реНрди рдореЗрдВ рдХрд┐рд╕реА рдиреЗ рдкреЛрд╕реНрдЯ рдкрд░ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рдЬрддрд╛рдИ - рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдБред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИ - рдЧрд┐рдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдпрд╛ рд╕рдВрдЧреАрддрдХрд╛рд░ (
рд╡рд░реНрдХрд┐рдВрдЯ / рдХрд┐рд╡реА ) рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВред рдореБрдЦреНрдп рдХрд╛рд░реНрдп Qiwi \ рдЧреНрд░рд╛рд╣рдХ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд╛ рдирд╛рдо / рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╕рд┐рдореНрдлрдиреА 2 рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):
рдХрдиреЗрдХреНрдЯ рд▓рд┐рдмреА <?php namespace MyOwnMegaPrefix\Qiwi; use MyOwnMegaPrefix\Settings, Werkint\Qiwi; class MyQiwi extends Qiwi\Client { protected $settings; public function __construct( Settings $settings // , ) { $this->settings = $settings; parent::__construct( $this->settings->get('qiwi.login'), $this->settings->get('qiwi.pass') ); } }
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ (рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ SOAP рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ) рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ - рд╣рдо Qiwi \ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдЪрд┐рдд рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ php- рд╕рд╛рдмреБрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдкрд░ рд╕рд┐рд░реНрдл рд╕рд╛рдзрд╛рд░рдг рд░реИрдкрд░ рд╣реИрдВ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд┐рдирд╛рдВрдХ рдлрд╝реАрд▓реНрдб \ DateTime рдореЗрдВ рд╣реИрдВ, рдмрд╛рдХреА рд╕рдмрдХреБрдЫ qiwi рдПрдкреАрдЖрдИ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рд▓реЙрдЧрд┐рди / рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред
рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рд░реНрд╡рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ (SOAP) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рдВ,
рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ x509 рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рдореБрдЭреЗ рдЕрднреА рднреА WSSE рдХреЛ php-рд╕рд╛рдмреБрди рд╕реЗ рджреВрд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ (рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛, рдХрд┐рд╕реА рдиреЗ рднреА рдирд╣реАрдВ рдкрд╛рдпрд╛)ред рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдЬрд╛рдБрдЪ рд╣реИред
рдХреАрд╡реА рд╕реЗ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреЛрдб use Werkint\Qiwi\ServerMethods\CheckBillResponse as QiwiBill; $callback = function ($bill) use (&$myMegaService) { $row = $myMegaService->findByKey(
рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ? рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдЖрдк рдмрд╕
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрде рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд╛рдн:
- рдЖрдкрдХреЛ SOAP, WSDL рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
- рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЬрд╛рдВрдЪ рд╣реИ, рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЪреЗрдХ рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдбреЙрдХреА рдХреАрд╡реА рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ)ред
- PHPDoc рдФрд░ рдСрд▓-рдСрд▓-рдСрд▓, рдЗрд╕рд▓рд┐рдП рдЧрд▓рддреА рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг (рдЬрд╣рд╛рдВ рд░реЗрдХ рд╣реИ) рд╣реИрдВред
- рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдХреЛрдб -> рдкрд╛рда)ред
- рдПрдХ рдкреИрдХрдЧрд┐рд╕реНрдЯ рд╣реИ, рдХрдиреЗрдХреНрд╢рди рдореЗрдВ 2 рдорд┐рдирдЯ рд▓рдЧреЗрдВрдЧреЗред
- рдпрд╣ рдСрдЯреЛрд▓реИрдбрд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдмреЗрд╢рдХ, рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ:
рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреВрдВрдЧреЗ рдкреНрд░рдХрд╛рд░ рдЖрдкрдХреЛ рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреЗрдХ рд▓рд┐рдЦрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВред- PHP 5.3 рдХреНрд▓реЛрдЬрд░ + рдиреЗрдорд╕реНрдкреЗрд╕ред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдХрд╛рдЯрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рд▓рд┐рдВрдХ:
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рд╡рд░рдг ,
рдирдореВрдирд╛ рдХреЛрдб ,
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА ред
рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
JekaRu рд╕реЗ - рдХреАрд╡реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛ред рддреЛ рд╡рд╣рд╛рдБ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред :)
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдХреЛрдб рдХреА рд╕рдлрд╛рдИ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред
UPD: Readme.md рдореЗрдВ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдФрд░ рдкреАрдПрд╕рдЖрд░ -2 рдореЗрдВ рд▓рд┐рдмрд╛рд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛
UPD2: рдореВрд╡реНрдб рд▓рд┐рдм, nic4fake / ishop -> werkint / qiwiред рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреБрд░рд╛рдиреЗ рдкрддреЗ рдкрд░ рдкреБрд░рд╛рдирд╛ рдХреЛрдб рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред