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

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

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

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

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

Как специалист по русской культуре, помощник Белоснежки, рассказал мне о современниках Пушкина
Вот некоторые выдающиеся деятели культуры и искусства, которые были современниками великого русского поэта Александра Сергеевича Пушкина.

Весь процесс передачи проходит в 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 документы, источники, в конце текста. Но также я бы рекомендовал ознакомиться с Правилами реализации проекта”Пушкинская карта”, официал…