Skip to content

DroidsOnRoids/add-to-google-wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

931d38b · Aug 28, 2024

History

75 Commits
Aug 20, 2024
Aug 27, 2024
Dec 15, 2022
Jan 10, 2023
Jul 1, 2024
Jul 3, 2024
Dec 5, 2022
Dec 5, 2022
Aug 28, 2024
Jan 9, 2023
Aug 28, 2024
Dec 5, 2022
Aug 28, 2024

Repository files navigation

Add To Google Wallet

A Flutter plugin that provides the Add To Google Wallet Button.

Overview

The goal of this plugin is to simplify the implementation of Add To Google Wallet feature.

Prerequisites

Before plugin can be used, make sure to complete all of the prerequisites listed below.

  1. Sign up for a Google Wallet API Issuer account
  2. Authorize your app
  3. Create a Passes Class
  4. Create a Passes Object

Usage

Installation

To use this plugin, add add_to_google_wallet as a dependency in your pubspec.yaml file.

dependencies:
  add_to_google_wallet: ^0.0.5

or run this command:

flutter pub add add_to_google_wallet 

Example usage

import 'package:add_to_google_wallet/widgets/add_to_google_wallet_button.dart';
import 'package:flutter/material.dart';
import 'package:uuid/uuid.dart';

void main() => runApp(const MaterialApp(home: MyApp()));

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) => Scaffold(
        body: Center(
          child: AddToGoogleWalletButton(
            pass: _examplePass,
            onSuccess: () => _showSnackBar(context, 'Success!'),
            onCanceled: () => _showSnackBar(context, 'Action canceled.'),
            onError: (Object error) => _showSnackBar(context, error.toString()),
            locale: const Locale.fromSubtags(
              languageCode: 'fr',
              countryCode: 'FR',
            ),
          ),
        ),
      );

  void _showSnackBar(BuildContext context, String text) =>
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(text)));
}

final String _passId = const Uuid().v4();
const String _passClass = 'example';
const String _issuerId = '3333000000000000000';
const String _issuerEmail = '[email protected]';

final String _examplePass = """ 
    {
      "iss": "$_issuerEmail",
      "aud": "google",
      "typ": "savetowallet",
      "origins": [],
      "payload": {
        "genericObjects": [
          {
            "id": "$_issuerId.$_passId",
            "classId": "$_issuerId.$_passClass",
            "genericType": "GENERIC_TYPE_UNSPECIFIED",
            "hexBackgroundColor": "#4285f4",
            "logo": {
              "sourceUri": {
                "uri": "https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/pass_google_logo.jpg"
              }
            },
            "cardTitle": {
              "defaultValue": {
                "language": "en",
                "value": "Google I/O '22 [DEMO ONLY]"
              }
            },
            "subheader": {
              "defaultValue": {
                "language": "en",
                "value": "Attendee"
              }
            },
            "header": {
              "defaultValue": {
                "language": "en",
                "value": "Alex McJacobs"
              }
            },
            "barcode": {
              "type": "QR_CODE",
              "value": "$_passId"
            },
            "heroImage": {
              "sourceUri": {
                "uri": "https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/google-io-hero-demo-only.jpg"
              }
            },
            "textModulesData": [
              {
                "header": "POINTS",
                "body": "1234",
                "id": "points"
              }
            ]
          }
        ]
      }
    }
""";

See the example app for more examples.

Demo

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published