рдЯрд┐рдВрдХрдл рдмреИрдВрдХ рдПрдкреАрдЖрдИ рдХреА рд╕реНрдерд╛рдкрдирд╛ред рдЖрдкрдХрд╛ рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдХреИрд╕рд╛ рд╣реИ ....? рдпрд╛ Oauth 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЧреАрдд

рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЯрд┐рдВрдХрдСрдлрд╝ рдмреИрдВрдХ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕реАрдЖрд░рдПрдо рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдареЗ рдереЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдмреИрдВрдХ рдЦрд╛рддрд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ред

рд╕рдВрдкрддреНрддрд┐ рдереА:

  1. openapi.tinkoff.ru
  2. рдЯреЗрд▓реАрдлреЛрди рд╕рд╣рд╛рдпрддрд╛ рд╕реЗрд╡рд╛ (рддрдХрдиреАрдХреА рд╕рд╣рд╛рдпрддрд╛ рд╡рд┐рднрд╛рдЧ рдХреА рд╡реНрдпрд╕реНрддрддрд╛ - рдбреВрдмрддреЗ рд╣реБрдП рдЖрджрдореА рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рдХрд╛рдо, рдЦреБрдж рдбреВрдмрдиреЗ рд╡рд╛рд▓реЗ рдХреА рдХрд░рддреВрдд)ред
  3. рдЧреВрдЧрд▓реЗрдб рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: 24386_policy.pdf (рд░реВрд╕реА рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рд╛рде, рдордиреЛрд░рдВрдЬрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЬрд╛рджреВ рдЯреЛрдирд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреБрдкрдпреБрдХреНрдд рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдПрдХ рдмрд╛рдд ...)

Google рдЦрд╛рддреЗ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ, рдпрд╣ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА рдХрд┐ рдЯрд┐рдВрдХрдСрдл рдмреИрдВрдХ рдПрдкреАрдЖрдИ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдмрд╣реБрдд рд╣реА рдордиреЛрд░рдВрдЬрдХ рдФрд░ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИ (рджреЗрдЦреЗрдВ рдмреИрдВрдХрд┐рдВрдХ рдкрд░ рд▓реЗрдЦ " рдЯрд┐рдВрдХрдСрдл рдПрдкреАрдЖрдИ - рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдореВрд░реНрдЦ рд╣реИрдВ" )ред

рд╣рд╛рдВ, рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЪрд┐рдврд╝рдирд╛ рдкрдбрд╝рд╛, рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рдореЗрдВ рдЕрдиреНрдп рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЯрд┐рдВрдХрдСрдл рдмреИрдВрдХ рдПрдкреАрдЖрдИ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП Oauth 2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╣рдореЗрдВ Openapi.tinkoff.ru рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

  1. рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ);
  2. рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд╣реИ; рдХреЛрдИ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рднрд╛рдЬрди рдирд╣реАрдВ рд╣реИ; рд╣рдо рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдХреЗ рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ! ...

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред "SSO рдкреНрд░рд╛рдзрд┐рдХрд░рдг" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, "рдХреИрд╕реЗ / рдЫрд┐рдкрд╛рдПрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ / рд╕реБрд░рдХреНрд╖рд┐рдд / рдЯреЛрдХрди # рддрд╛рдЬрд╝рд╛-рдЯреЛрдХрди ("рддрд╛рдЬрд╝рд╛ рдЯреЛрдХрди рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЯреЛрдХрди рдЬрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ"), рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрджрд╛рди_рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдлрд┐рд░ рддрд╛рдЬрд╝рд╛_рдЯреЛрдХреЗрди рдлрд╝реАрд▓реНрдб рдореЗрдВ (рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддрд╛)ред рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ "рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ!" рдЗрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо access_token (рдпрд╛рдиреА openapi.tinkoff.ru рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ) рдЬреИрд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЕрдиреБрднрд╛рдЧ "рдЦрд╛рддреЗ рдФрд░ рднреБрдЧрддрд╛рди" рджреЗрдЦреЗрдВ, / рднрд╛рдЧреАрджрд╛рд░ / рдХрдВрдкрдиреА / {INN} / рдЕрдВрд╢ ("рд╡рд┐рд╡рд░рдг рдХреА рдкреНрд░рд╛рдкреНрддрд┐") рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╣рдо рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдкреНрд░рд╛рдзрд┐рдХрд░рдг, INN, рдЕрдХрд╛рдЙрдВрдЯрдирдВрдмрд░, рд╕реЗ, рддрдХред

рдкреНрд░рд╛рдзрд┐рдХрд░рдг - рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдПрдХ access_token рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ "SSO рдкреНрд░рд╛рдзрд┐рдХрд░рдг" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдерд╛;
INN - рдЙрд╕ рд╕рдВрдЧрдарди рдХрд╛ INN рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо API рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ;
рд╕реЗ - рдХрд┐рд╕ рджрд┐рди (рдбрд┐рд╕реНрдЪрд╛рд░реНрдЬ рдЕрд╡рдзрд┐);
рддрдХ - рдХрд┐рд╕ рджрд┐рди (рдбрд┐рд╕реНрдЪрд╛рд░реНрдЬ рдЕрд╡рдзрд┐)ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ (рд╣рдо Oauth 2.0 рдореИрдЯрд░рд┐рдпрд▓ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ), рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ - рдкрд╣рд▓реЗ рд╣рдореЗрдВ access_token рдорд┐рд▓рддрд╛ рд╣реИ, рдлрд┐рд░ рд╣рд╛рде рдкрд░ access_token рд╣реЛрдиреЗ рд╕реЗ, рд╣рдо рдЗрд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ ред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╣рдо рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ ($ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдорд╛рдиреЛрдВ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░, $ рдкрд╛рд╕, $ рд░рд┐рдлреНрд░реЗрд╢_рдЯреЛрдХрди, $ рд╕рд░рд╛рдп, $ рдЕрдХрд╛рдЙрдВрдЯрдирдВрдмрд░ - рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ, рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмрджрд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред

рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБ:

  1. рдкрд╣рд▓реА рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ StartSettings.php рд╣реИ
  2. рджреВрд╕рд░реА рд╕реНрдЯрд╛рд░реНрдЯ рдлрд╛рдЗрд▓ Start.php рд╣реИ
  3. рдПрдкреАрдЖрдИ рд╕реЗ / рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕ / рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рддреАрд╕рд░реА рдлрд╝рд╛рдЗрд▓ TinkoffInsertData.php рд╣реИ ; рд╣рдо CURL (php) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
  4. рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рдЬрд╣рд╛рдВ рдЖрдк рдЕрдкрдиреЗ рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: bank.sql ; MySQL рдбреЗрдЯрд╛рдмреЗрд╕ (рд╣рдо рдкреАрдбреАрдУ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрддреЗ рд╣реИрдВ)ред

рддреЛ, рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рдЙрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ!

рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ - StartSettings.php:

$host = '127.0.0.1'; $db = 'bank'; $user = 'root'; $pass = ''; $charset = 'utf8'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; $pdo = new PDO($dsn, $user, $pass, $opt); $user="IKu0jn98kllkI90kklii"; //20  $pass="ds4234SDFsdfsdijoijslkkdjfoIOi"; //30  $refresh_token='dsfh345kljlkjsdf098sdfkljklj098sdfkklKKLjhjihiKL90909llkrre5345dfFDDFretertERTERETfdgd==';// 88  $inn = '750151513135'; $accountNumber = '40802810300000121212';//20  $from_year = '1980'; $from_month = '01'; $from_day = '01'; $till_year = date('Y'); $till_month = date('m'); $till_day = date('d'); 

рдкреНрд░рд╛рд░рдВрдн рдлрд╝рд╛рдЗрд▓ - Start.php:

 session_start(); error_reporting(E_ALL); include 'StartSettings.php'; include 'TinkoffInsertData.php'; TinkoffInsertData($user,$pass,$refresh_token, $inn, $accountNumber, $from_year, $from_month, $from_day, $till_year, $till_month, $till_day, $pdo); $stmt = $pdo->prepare("INSERT INTO `bank`.`dateofwork` (dateofwork) VALUES (NOW())"); $stmt->execute(); 

рдкреЛрд╕реНрдЯрд┐рдВрдЧ / рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП / рдПрдкреАрдЖрдИ рд╕реЗ рдлрд╝рд╛рдЗрд▓ - TinkoffInsertData.php:

 function TinkoffInsertData($user,$pass,$refresh_token, $inn, $accountNumber, $from_year, $from_month, $from_day, $till_year, $till_month, $till_day, $pdo){ //  -    access_token $from_date = $from_year."-".$from_month."-".$from_day.'%2B03%3A00%3A00'; $till_date = $till_year."-".$till_month."-".$till_day.'%2B03%3A00%3A00'; $params=['grant_type'=>'refresh_token', 'refresh_token'=>$refresh_token ]; $headers = [ 'POST /secure/token HTTP/1.1', 'Content-Type: application/x-www-form-urlencoded' ]; $curlURL='https://sso.tinkoff.ru/secure/token'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$curlURL); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, $user . ":" . $pass); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($params)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, true); $curl_res = curl_exec($ch); if($curl_res) { $server_output = json_decode($curl_res); } // access_token -     2  $access_token_pos_start = strpos ($curl_res, 'access_token', 0); $access_token_pos_start = $access_token_pos_start + 15; $token_type_pos_start = strpos ($curl_res, "token_type", 0); $access_token = mb_substr($curl_res, $access_token_pos_start, ($token_type_pos_start-$access_token_pos_start-3)); //!....   ..... // ,    sleep,        //sleep(1); //  -     $params=[ 'Authorization'=>$access_token, 'INN'=>$inn, 'accountNumber'=>$accountNumber ]; $headers = [ 'Authorization: Bearer '.$access_token ]; $curlURL='https://sme-partner.tinkoff.ru/api/v1/partner/company/'.$inn.'/excerpt?accountNumber='.$accountNumber.'&from='.$from_date.'&till='.$till_date; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$curlURL); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, $user . ":" . $pass); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($params)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, true); $curl_res = curl_exec($ch); if($curl_res) { $server_output = json_decode($curl_res); } $IE_Edge_pos_start = strpos ($curl_res, 'IE=Edge', 0); $IE_Edge_pos_start = $IE_Edge_pos_start + 7; $tinkoff_json = mb_substr($curl_res, $IE_Edge_pos_start); $tinkoff_json = trim($tinkoff_json); $tinkoff_json = json_decode($tinkoff_json); //     ,  ;) foreach ($tinkoff_json as $k=>$v){ if($k=='accountNumber'){ if(!($v==$accountNumber)) die('not that accountNumber'); } } //$tinkoff_array -    json   foreach ($tinkoff_json as $k=>$v){ if($k=='operation'){ $i=0; foreach ($v as $t=>$s){ foreach ($s as $e=>$f){ $tinkoff_array[$i][$e]=$f; } $i++; } } } //   $tinkoff_array    for ($i=0;$i<count($tinkoff_array);$i++){ $temp_id = $pdo->query("SELECT count(*) FROM `justtin`.`tinkoff` WHERE id=".$tinkoff_array[$i]['id'].";")->fetchColumn(); if ($temp_id==0){ if (Get_highly_likely_is_number_bill($tinkoff_array[$i]['paymentPurpose'])!=""){ $stmt = $pdo->prepare("INSERT INTO `justtin`.`tinkoff` (id, date, amount, drawDate, payerName, payerInn, payerAccount, payerCorrAccount, payerBic, payerBank, chargeDate, recipient, recipientInn, recipientAccount, recipientCorrAccount, recipientBic, recipientBank, operationType, uin, paymentPurpose, creatorStatus, payerKpp, executionOrder, date_of_save) VALUES (:id, :date, :amount, :drawDate, :payerName, :payerInn, :payerAccount, :payerCorrAccount, :payerBic, :payerBank, :chargeDate, :recipient, :recipientInn, :recipientAccount, :recipientCorrAccount, :recipientBic, :recipientBank, :operationType, :uin, :paymentPurpose, :creatorStatus, :payerKpp, :executionOrder, NOW())"); $stmt->bindParam(':id', $tinkoff_array[$i]['id']); $stmt->bindParam(':date', $tinkoff_array[$i]['date']); $stmt->bindParam(':amount', $tinkoff_array[$i]['amount']); $stmt->bindParam(':drawDate', $tinkoff_array[$i]['drawDate']); $stmt->bindParam(':payerName', $tinkoff_array[$i]['payerName']); $stmt->bindParam(':payerInn', $tinkoff_array[$i]['payerInn']); $stmt->bindParam(':payerAccount', $tinkoff_array[$i]['payerAccount']); $stmt->bindParam(':payerCorrAccount', $tinkoff_array[$i]['payerCorrAccount']); $stmt->bindParam(':payerBic', $tinkoff_array[$i]['payerBic']); $stmt->bindParam(':payerBank', $tinkoff_array[$i]['payerBank']); $stmt->bindParam(':chargeDate', $tinkoff_array[$i]['chargeDate']); $stmt->bindParam(':recipient', $tinkoff_array[$i]['recipient']); $stmt->bindParam(':recipientInn', $tinkoff_array[$i]['recipientInn']); $stmt->bindParam(':recipientAccount', $tinkoff_array[$i]['recipientAccount']); $stmt->bindParam(':recipientCorrAccount', $tinkoff_array[$i]['recipientCorrAccount']); $stmt->bindParam(':recipientBic', $tinkoff_array[$i]['recipientBic']); $stmt->bindParam(':recipientBank', $tinkoff_array[$i]['recipientBank']); $stmt->bindParam(':operationType', $tinkoff_array[$i]['operationType']); $stmt->bindParam(':uin', $tinkoff_array[$i]['uin']); $stmt->bindParam(':paymentPurpose', $tinkoff_array[$i]['paymentPurpose']); $stmt->bindParam(':creatorStatus', $tinkoff_array[$i]['creatorStatus']); $stmt->bindParam(':payerKpp', $tinkoff_array[$i]['payerKpp']); $stmt->bindParam(':executionOrder', $tinkoff_array[$i]['executionOrder']); $stmt->execute(); } } } } 

рдкрд╛рдардХреЛрдВ: рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдЖрдкрдХреА рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдореБрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред рдмрд▓ рдЖрдкрдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддрд╛ рд╣реИ!

Tinkoff рдмреИрдВрдХ рддрдХрдиреАрдХреА рд╕рд╣рд╛рдпрддрд╛ рд▓реЛрдЧ: рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдк рдкрд░ рднрд╛рд░ рдХрдо рдХрд░реЗрдЧрд╛! рд╕реМрднрд╛рдЧреНрдп рд╣реИ

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


All Articles