Створення Apple Wallet Passes у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 31 липня, 2025
Створення гаманців, сумісних з Apple Wallet, ще ніколи не було таким простим, завдяки пакету Laravel PassGenerator. Долучайтеся до нас, щоб дізнатися, як швидко налаштувати генератор пропусків, який дозволить вам легко інтегрувати цю функціональність у ваші проекти!

Пакет Laravel PassGenerator дозволяє легко створювати гаманцеві пропуски, сумісні з Apple Wallet. Документація до цього пакету обмежена, але суть полягає в створенні екземпляра генератора пропусків за допомогою визначення:

use Byte5\PassGenerator;

//...
$pass = new PassGenerator('somekindofid');
// Зауважте: визначення можна також задавати з JSON-строки
$pass->setPassDefinition([
    "description"       => "Опис",
    "formatVersion"     => 1,
    "organizationName"  => "Назва організації",
    "passTypeIdentifier"=> "pass.com.example.appname",
    "serialNumber"      => "123456",
    "teamIdentifier"    => "teamid",
    "foregroundColor"   => "rgb(99, 99, 99)",
    "backgroundColor"   => "rgb(212, 212, 212)",
    "barcode" => [
        "message"   => "encodedmessageonQR",
        "format"    => "PKBarcodeFormatQR",
        "altText"   => "alttextfortheQR",
        "messageEncoding" => "utf-8",
    ],
    // ...
]);

$pass->addAsset(base_path('resources/assets/wallet/background.png'));
$pass->addAsset(base_path('resources/assets/wallet/thumbnail.png'));
// ...

$pkpass = $pass->create();

Після створення екземпляра пропуску ви можете згенерувати відповідь для нього, використовуючи аналогічний код у вашому контролері. Пропуск зберігається для подальшого завантаження, використовуючи налаштований диск зберігання:

return new Response($pkpass, 200, [
    'Content-Transfer-Encoding' => 'binary',
    'Content-Description' => 'File Transfer',
    'Content-Disposition' => 'attachment; filename="pass.pkpass"',
    'Content-length' => strlen($pkpass),
    'Content-Type' => PassGenerator::getPassMimeType(),
    'Pragma' => 'no-cache',
]);

Детальнішу інформацію про цей пакет, повні інструкції зі встановлення та код можна знайти на GitHub.

Зауважте, що пакет Byte5 є форком thenextweb/passgenerator, який більше не підтримується, відповідно до цієї проблеми.