Как работает PHP код передачи данных о гашении билета

Пушкинская карта 13 мар. 2022 г.

Гашение билетов происходит сканером, при сканировании QR кодов билетов, и может проводиться в ручном режиме в реестре покупателей билетов.

Наша компания Цифровая фабрика, по одному из заказов, работала по программированию и настройке передачи данных в билетный реестр из существующего интернет магазина. Это материалы собранные к данному проекту.

Передача данных по API в ручном режиме из реестра покупателей

Ручное гашение может заменять гашение сканером, после проверки билета администратором.
Во-первых нужно получить номер заказа, чтобы из базы данных получить адрес ссылки в билетном реестре. Также получаем текущее время, присваем его переменной, для передачи данных о времени гашения билета.
Собственно сам процесс передачи данных о гашении, это знать по какому адресу отправлять для какого билета, то есть передача данных это куда и что, что это visit_date.

Какие кинофильмы идут по Пушкинской карте в 2022 году
С 1 февраля 2022 года в программе «Пушкинская карта» начинают участвоватьфильмы, созданные при поддержке Министерства культуры Российской Федерации и(или) Федерального фонда социальной и экономической поддержки отечественнойкинематографии, а также аудиовизуальные произведения, созданные на террит…

Весь процесс передачи проходит в public function ajax_attendee_checkin()
Когда он вызывается то во время регистрации посетителя, во время гашения его билета, запускается процесс передачи данных. Этот процесс по AJZX находится в файле event-tickets/src/Tribe/Metabox.php// Гашение работает по нажатию кнопки, "Погасить билет".

После передачи данных получаем ответ, в виде массива, сериализируем его, добавляем время, и записываем результат в лог файл.

Типы кодирования штрих-кодов в поле “barcode” для реестра билетов по Пушкинской карте
Штриховой код (штрихкод) — графическая информация, наносимая на поверхность,маркировку или упаковку изделий, предоставляющая возможность считывания еётехническими средствами — последовательность чёрных и белых полос, либо другихгеометрических фигур. Aztec CodeДвумерный матричный штрихкод. Разр…

394
395
396       $ticketnumber = $attendee_id['ticket_id'];
397       $order_idforcheckin = $attendee_id - 1;
398
399           global $wpdb;
400
401 $localtime = time() + 25200;
402 $visited_normal = date('d.m.y H:i', $localtime);
403
404         $wpdb->update( 'ticket_id',
405
406 [ 'visited_normal' => $visited_normal],
407 [ 'ticket_id' => $order_idforcheckin]
408
409 );
410
411         $gos = $wpdb->get_row( "SELECT * FROM ticket_id WHERE ticket_id = '$order_idforcheckin'" );
412 $gosId = $gos->gos_id;
413
414 $visit_date = time();
415
416 $ticketId = $gosId;
417 $url = 'https://pushka.gosuslugi.ru/api/v1/tickets/'. $ticketId . '/visit';
418
419          $data = [
420 'visit_date' => $visit_date
421 ];
422
423 $jsonData = json_encode($data);
424
425 $ch = curl_init($url);
426        curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'PUT');
427 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
428 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
429 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
430 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
431        curl_setopt($ch, CURLOPT_HEADER, false);
432 curl_setopt($ch, CURLOPT_TIMEOUT, 4000);
433 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
434 curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer тут код авторизации в реестре']);
435        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
436
437    $curlResult = curl_exec($ch); // выполняем передачу результат получилось или нет записываем в переменную
438
439
440    if ($curlResult === FALSE) {
441 $curlerror = curl_error($ch);
442 }
443
444 $curlinfo = curl_getinfo($ch); //тут получаем данные по передаче в виде массива
445
446 $new_str2 = serialize($curlinfo);
447 $timeqr = time();
448 $dateqr = date("Передача данных автоматическая d.m.y H:i");
449 $localtime = time() + 25200;
450 $visited_normal = date('d.m.y H:i', $localtime);
455            curl_close($ch);
456
457
458           $filename = DIR . '/curlinfo.log'; // создаем файл в который будем записать лог
459           $fh = fopen($filename, 'c');
460    fseek($fh, 0, SEEK_END);
461    fwrite($fh, PHP_EOL . "attendee = $attendee");
462         fwrite($fh, PHP_EOL . "visited_normal = $visited_normal"); // время в "нормальном формате", не UNIX время
463            fwrite($fh, PHP_EOL . "ticketnumber = $ticketnumber"); // записываем в лог номер билета
464
466          fwrite($fh, PHP_EOL . "order_idforcheckin = $order_idforcheckin");
467
468         fwrite($fh, PHP_EOL . "new_str2 = $new_str2"); // тут результаты передачи данных, результат обмена
469       fwrite($fh, PHP_EOL . "order_idforcheckin = $order_idforcheckin");
471    fwrite($fh, PHP_EOL . " \n ");
472
473    fclose($fh);

Методические рекомендации Минцифры и Минкульта РФ по внедрению проекта «Пушкинская карта»
На данной странице собраны копии четырех технических методических рекомендаций,это все необходимые данные для внедрения проекта «Пушкинская карта», ссылки наPDF документы, источники, в конце текста. Но также я бы рекомендовал ознакомиться с Правилами реализации проекта”Пушкинская карта”, официал…

Теги

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.

Все представленные на сайте материалы предназначены исключительно для образовательных целей и не предназначены для медицинских консультаций, диагностики или лечения. Администрация сайта, редакторы и авторы статей не несут ответственности за любые последствия и убытки, которые могут возникнуть при использовании материалов сайта.