SOAP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ QIWI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рд╣рдордиреЗ QIWI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛! рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдореБрдЭреЗ qiwi рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╡рд┐рдХрдЯрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛:
рдХреАрд╡реА рд╕реЗ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреЛрдб
<?php /** *       QIWI . * SoapServer   SOAP-,    login, password, txn, status, *      Param    updateBill   TestServer. * *        updateBill. */ $s = new SoapServer('IShopClientWS.wsdl', array('classmap' => array('tns:updateBill' => 'Param', 'tns:updateBillResponse' => 'Response'))); // $s = new SoapServer('IShopClientWS.wsdl'); $s->setClass('TestServer'); $s->handle(); class Response { public $updateBillResult; } class Param { public $login; public $password; public $txn; public $status; } class TestServer { function updateBill($param) { //           $f = fopen('c:\\phpdump.txt', 'w'); fwrite($f, $param->login); fwrite($f, ', '); fwrite($f, $param->password); fwrite($f, ', '); fwrite($f, $param->txn); fwrite($f, ', '); fwrite($f, $param->status); fclose($f); //  password, login //      $param->status      if ($param->status == 60) { //   //      ($param->txn),    } else if ($param->status > 100) { //    ( ,      ..) //      ($param->txn),    } else if ($param->status >= 50 && $param->status < 60) { //     } else { //    } //     //           ,   0 // $temp->updateBillResult = 0 //     (,  ),    //    QIWI           0 //    24  $temp = new Response(); $temp->updateBillResult = 0; return $temp; } } ?> 

рдмреЗрд╢рдХ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреБрдЫ "рдЕрдзрд┐рдХ рддреИрдпрд╛рд░" рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, 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) { /** @var QiwiBill $bill */ $row = $myMegaService->findByKey( //      $bill->id ); if (!$row) { throw new \Exception('  '); } $myMegaService->process($row); // -    return $myMegaService->status(); //     QIWI. 0 -   }; //     $theQiwiObject->processRequest($callback); //    text/html, qiwi    (  ,   ) header('Content-Type: text/xml; charset=utf-8'); 

рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ? рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдЖрдк рдмрд╕ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрде рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд╛рдн:

рдмреЗрд╢рдХ, рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ:

рд▓рд┐рдВрдХ: рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рд╡рд░рдг , рдирдореВрдирд╛ рдХреЛрдб , рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА ред
рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ JekaRu рд╕реЗ - рдХреАрд╡реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛ред рддреЛ рд╡рд╣рд╛рдБ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред :)
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдХреЛрдб рдХреА рд╕рдлрд╛рдИ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред

UPD: Readme.md рдореЗрдВ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдФрд░ рдкреАрдПрд╕рдЖрд░ -2 рдореЗрдВ рд▓рд┐рдмрд╛рд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛
UPD2: рдореВрд╡реНрдб рд▓рд┐рдм, nic4fake / ishop -> werkint / qiwiред рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреБрд░рд╛рдиреЗ рдкрддреЗ рдкрд░ рдкреБрд░рд╛рдирд╛ рдХреЛрдб рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред


Source: https://habr.com/ru/post/In162185/


All Articles