nowo-tech/wallet-qr-bundle

Symfony bundle to generate Google Wallet and Apple Wallet save links with QR codes for Android and iOS.

Maintainers

Package info

github.com/nowo-tech/WalletQRBundle

Homepage

Issues

Type:symfony-bundle

pkg:composer/nowo-tech/wallet-qr-bundle

Transparency log

Fund package maintenance!

HecFranco

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

v2.1.2 2026-07-13 10:54 UTC

This package is auto-updated.

Last update: 2026-07-13 10:57:06 UTC


README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

⭐ Found this useful? Give it a star on GitHub! It helps us maintain and improve the project.

Symfony bundle to generate Google Wallet (Android) and Apple Wallet (iOS) save links with QR codes.

πŸ“‹ Requires PHP 8.2+ and Symfony 7.x or 8.x

Features

  • βœ… Google Wallet Add to Google Wallet save links (signed JWT)
  • βœ… Apple Wallet .pkpass download URL builder for iOS QR codes
  • βœ… PNG QR codes as data URIs (Twig helpers included)
  • βœ… Pair generation for Android + iOS in one call
  • βœ… Symfony configuration under nowo_wallet_qr
  • βœ… URL validation for custom QR links (QrUrlPolicy; optional host allowlist)
  • βœ… Demo apps for Symfony 7 and 8 (FrankenPHP)

Quick start

composer require nowo-tech/wallet-qr-bundle endroid/qr-code firebase/php-jwt
# config/packages/nowo_wallet_qr.yaml
nowo_wallet_qr:
    google_wallet:
        enabled: true
        issuer_id: '%env(GOOGLE_WALLET_ISSUER_ID)%'
        service_account_json: '%kernel.project_dir%/config/google-wallet-service-account.json'
        origins: ['www.example.com']
    apple_wallet:
        enabled: true
        pass_download_url_pattern: 'https://www.example.com/wallet/{pass_id}.pkpass'
    qr_code:
        size: 300
use Nowo\WalletQrBundle\Model\GoogleWalletPassReference;
use Nowo\WalletQrBundle\Service\WalletQrService;

$reference = GoogleWalletPassReference::withIssuer(
    $issuerId,
    objectSuffix: 'MEMBER_001',
    classSuffix: 'MEMBER_CLASS',
);

$pair = $walletQrService->createWalletQrPair($reference, applePassId: 'MEMBER_001');
// $pair['android']->qrCodeDataUri, $pair['ios']->qrCodeDataUri

Documentation

Additional documentation

Development

make up
make test
make test-coverage
make release-check

Demos: make -C demo/symfony8 up

Tests and coverage

Language Coverage
PHP ~100% lines

Run make test-coverage for the detailed report.

License

MIT β€” see LICENSE.