рдЧреНрд░рд╛рд╣рдХ QIWI рднреБрдЧрддрд╛рди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрд╡рд╛ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рд╕реЗрд╡рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрдЯрди рдХреЛ рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдереА, рдЗрд╕рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд
рдХреНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВрдЖрдИ рд╡реЙрд▓реЗрдЯ (рдЬреЛ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдирдВрдмрд░ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЪреВрдБрдХрд┐ рдЙрд╕ рд╕рдордп рдореИрдВ Yii рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣рд╛ рдерд╛, рдореИрдВрдиреЗ рдЬреЛ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рддрдп рдХреА рдереА, рд╡рд╣ рдПрдХ рд╕рдорд╛рдкреНрдд рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рддрд▓рд╛рд╢ рдереАред рдЦреИрд░, рдЪреВрдВрдХрд┐ рдЦреЛрдЬреЛрдВ рдХрд╛ рдХреЛрдИ рдирддреАрдЬрд╛ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рд▓рд┐рдЦрдирд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреА рд╕рднреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН: HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓, XML рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ SOAP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (QIWI рд╕реЗрд╡рд╛ рд╢рд░реНрддреЗрдВ), SOAP рдХреЛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрдк
рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ QIWI SOAP рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ Yii рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрднрд╡ рд▓реЗрдЦрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИред
рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдЦреБрдж рдорд┐рд▓реЗрдЧрд╛ (QIWI рд╕реЗ рд╕реНрдкреЗрдпрд░ рдкрд╛рд░реНрдЯреНрд╕ рдХреЗ рдмрд┐рдирд╛, рд▓реЗрдЦ рдХреЗ рдиреАрдЪреЗ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ)ред
ext.ishop.Ishop.php<?php class IShop extends CApplicationComponent { public $login; public $password; public $wsdlPath; public $options = array(); protected $validOptions = array( 'login' => array('type' => 'integer'), 'password' => array('type' => 'string'), 'wsdlPath' => array('type' => 'string'), ); protected static function checkOptions($value, $validOptions) { if (!empty($validOptions)) { foreach ($value as $key=>$val) { if (!array_key_exists($key, $validOptions)) { throw new CException(Yii::t('IShop', '{k} is not a valid option', array('{k}'=>$key))); } $type = gettype($val); if ((!is_array($validOptions[$key]['type']) && ($type != $validOptions[$key]['type'])) || (is_array($validOptions[$key]['type']) && !in_array($type, $validOptions[$key]['type']))) { throw new CException(Yii::t('IShop', '{k} must be of type {t}', array('{k}'=>$key,'{t}'=>$validOptions[$key]['type']))); } if (($type == 'array') && array_key_exists('elements', $validOptions[$key])) { self::checkOptions($val, $validOptions[$key]['elements']); } } } } protected function defaults() { !isset($this->options['login']) ? $this->login = '' : $this->login = $this->options['login']; !isset($this->options['password']) ? $this->password = '' : $this->password = $this->options['password']; !isset($this->options['wsdlPath']) ? $this->wsdlPath = Yii::getPathOfAlias('ext.ishop.vendor') : $this->wsdlPath = $this->options['wsdlPath']; } public function init() { if (!extension_loaded('soap')) { throw new CException( Yii::t('Soap', 'You must have SOAP enabled in order to use this extension.') ); } else { self::checkOptions($this->options, $this->validOptions); $this->defaults(); } } public function createBill( $user, $amount, $comment, $txn, $create = true ) { if (strlen($txn) > 30) { throw new CException(Yii::t('IShop', 'Row size can not exceed 30 bytes.')); }
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрд┐рд▓рд┐рдВрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг: $user = 9181234567; $amount = 100; $coment = 'Test pay'; $txn = 123; $return = Yii::app()->ishop->createBill($user, $amount, $comment, $txn); echo $return;
QIWI рд╕реЛрдк рд╕реЗрд╡рд╛ рдкреНрд░рд▓реЗрдЦрдиPhp рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)
QIWI рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Yii рдПрдХреНрд╕рдЯреЗрдВрд╢рди (wsdl рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рдЯ)