Interface do scanner QR. Ações de passe de uso único estão planejadas.
Interface do scanner QR. Ações de passe de uso único estão planejadas.
← Todos os guias nativos

Xodera Plugins · Bubble Native

Xodera QR Passes Native

Crie ingressos de uso único, confirmações de retirada ou cupons. A equipe escaneia o código, verifica o resultado, visualiza o pedido e confirma o uso somente quando estiver pronto.

Public beta guides · Haptics instructions are in its Bubble listing

Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.

Documentação revisada 6 novembro 2026

Exemplos práticos

Admissão de uso único para um evento no mesmo dia

Uma captura de tela de um valor QR comum pode, de outra forma, ser reutilizada em mais de uma entrada.

Seu aplicativo armazena um registro de Admissão e um `request_id` de emissão estável; use `label=event` curado e um `ttl_seconds` dentro do contrato 1–86400‑segundo.

Um emissor autorizado executa Issue QR pass e entrega privadamente o QR retornado. A equipe escaneia → Check QR pass → confirma somente se `ok=yes` e `status=available` → Confirm QR redemption com um ID de solicitação estável armazenado.

Somente `status=redeemed` mais `receipt_id` autoriza o recibo de admissão do seu aplicativo. Armazene a referência do passe/recibo na Admissão; não exponha o conteúdo de QR para análises.

Para `outcome_unknown`, recupere a mesma solicitação com usuário/ambiente/passe idênticos; nunca gere um novo ID de confirmação. Trate expired, revoked e estados já usados como resultados distintos.

Planejado. Digitalizar e verificar não utilizam o passe; somente a confirmação explícita o faz.

Resgate um benefício de curta duração uma vez no balcão de um parceiro

Um parceiro precisa de um resultado confirmado usado/não usado em vez de confiar em uma imagem QR ou em uma animação de tela.

`label=coupon`; o registro de Benefício do aplicativo define a elegibilidade e uma janela curta de validade antes de uma ação de emissão autorizada.

Emita um passe somente após a verificação de elegibilidade do seu aplicativo. No balcão, Check QR pass mostra a disponibilidade sem consumi‑lo. Após o membro da equipe confirmar a entrega do benefício, execute Confirm QR redemption.

Seu registro de Benefício pode armazenar `receipt_id` e o horário de resgate confirmado após `status=redeemed`. O plugin gerencia o estado do passe; seu aplicativo gerencia o benefício e o relacionamento com o cliente.

Se um benefício for cancelado antes do uso, o mesmo emissor autorizado pode Revoke QR pass usando seu `pass_id`. Não anuncie um reembolso ou resgate bem‑sucedido apenas a partir de `ok=yes`.

Planejado. Digitalizar e verificar não utilizam o passe; somente a confirmação explícita o faz.

Confirmar a retirada de equipamento ou pedido no mesmo dia

Um fluxo de trabalho da equipe precisa distinguir a digitalização de uma referência de coleta da entrega real de um item.

O registro de Coleção de propriedade do seu aplicativo mantém a autorização, o item pretendido e IDs de solicitação de emissão/resgate estáveis separados; use um passe `label=access` de curta duração.

Depois que seu aplicativo autoriza a coleta, Issue QR pass. A equipe escaneia e verifica, inspeciona a Coleção correspondente no seu aplicativo e, então, confirma explicitamente a entrega e Confirm QR redemption.

Somente após um recibo `redeemed` confirmado seu fluxo de trabalho deve definir a Coleta como entregue. Mantenha `receipt_id` como o vínculo ao resultado do passe.

Uma digitalização repetida pode retornar already_used; exiba o registro existente do aplicativo em vez de entregar outro item. Recupere uma confirmação incerta com o mesmo ID e entradas.

Planejado. Digitalizar e verificar não utilizam o passe; somente a confirmação explícita o faz.

O que funciona agora

Beta privado. O scanner atual possui controle de câmera e permissões. Criar, verificar e confirmar passes de uso único está planejado e ainda não está pronto para uso no seu aplicativo.

Crie o fluxo de trabalho

Planeado

Fluxo de trabalho planejado. Ainda não está disponível na beta atual.

Estes exemplos utilizam registros de aplicativo como Lesson, Message e Order. Substitua-os pelos seus próprios tipos de dados e nomes de elementos. Endereços de mídia de exemplo devem ser substituídos pelos seus próprios arquivos.

  1. Planejado: um funcionário autorizado usa Issue QR pass para uma Admissão ou Order. Exemplo: label=event, ttl_seconds=900, environment=development. Mantenha um request_id estável para essa emissão e salve pass_id com o registro.

  2. Mostre o QR devolvido ao seu destinatário. A equipe o escaneia. No fluxo de passe planejado, use workflow_mode=yes e leia scanned_pass_token após pass_scanned. Essas configurações de fluxo de passe não estão disponíveis no scanner atual.

  3. Execute Check QR pass com pass_token = QR Scanner's scanned_pass_token. Ele verifica sem usar o passe. Para status=available, mostre os detalhes do pedido ou entrada correspondentes para que a equipe os revise.

  4. Somente um botão Confirmar separado executa Confirm QR redemption com o mesmo pass_token, um request_id estável e confirm=yes. Em status=redeemed, salve receipt_id e marque aquele pedido ou entrada como concluído.

  5. already_used, expired, revoked ou invalid significam não admitir ou entregar o pedido. Um escaneamento ou uma Verificação bem‑sucedida sozinha nunca completa a transação.

Diagrama de fluxo de trabalho — não é uma captura de tela do aplicativo

Configure uma vez

Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins. Escolha Xodera QR Passes Native, copie sua chave, então abra Bubble → Plugins → Xodera QR Passes Native e cole-a em project_api_key. Salve uma vez; depois use as ações abaixo. Cada plugin em cada projeto tem sua própria chave.

A digitalização requer permissão de câmera. Para passes de uso único, decida quem pode criar passes e quem pode verificá‑los na porta ou ponto de retirada. Clientes comuns não precisam de função de equipe.

qr_issuer_permission_field

qr_pass_issuer · Nome do campo sim/não do usuário que indica quais funcionários podem criar ou revogar passes. Exemplo/padrão: qr_pass_issuer. Insira o nome do campo aqui, não sim ou não. Apenas um administrador autorizado deve alterar essa permissão em um usuário.

qr_staff_permission_field

qr_staff · Nome do campo sim/não do Usuário que indica a equipe autorizada a verificar e confirmar o uso. Exemplo/padrão: qr_staff. Um portador de ingresso não precisa dessa permissão. Mantenha‑lo fora dos formulários públicos de cadastro e perfil.

Configure uma vez
  1. Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins.
  2. Escolha este plugin e copie sua chave de projeto.
  3. Abra Bubble → Plugins → Xodera QR Passes Native; cole a chave em project_api_key e salve.
  4. Adicione o elemento, escolha os dados do seu aplicativo e construa o fluxo de trabalho abaixo.
  5. Acesso beta privado apenas por enquanto. Instalação pública e ativação paga ainda não estão disponíveis.
Instalação e assinatura

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

Salve o resultado no seu aplicativo

Exemplo de Admissão ou Retirada: salve o pedido/evento relacionado, pass_id, expires_at e issue_request_id. Após o uso confirmado, adicione receipt_id, redeemed_at e o funcionário que confirmou. Não marque o registro como concluído quando o código for apenas escaneado ou verificado. Um código QR não verifica a identidade de uma pessoa.

Falha, cancelamento e recuperação

Se outcome_unknown=yes, mantenha o mesmo passe, request_id e as entradas ao verificar o resultado novamente. Não crie uma nova confirmação. already_used, expired e revoked são resultados comerciais finais. Se a permissão for negada, solicite a um administrador autorizado que revise a função do funcionário. Clear session reinicia o scanner; não pode desfazer um uso concluído.

Capacidades e limites

Os passes planejados são de uso único, com duração de 1–86400 segundos; padrão 900. Tipos de passe: access, event, coupon e membership. A verificação não reserva um passe. É necessário acesso à internet para usar o passe. Não há processamento de pagamento, verificação de identidade ou cartão de associação reutilizável de longo prazo. Ler um valor QR comum é separado da verificação de um passe.

Configurações, ações e resultados

Use esses nomes em Bubble. Recursos planejados são marcados separadamente.

Configurações beta disponíveis

Configurações do elemento

disabled · yes/nois_active · yes/noui_text_json · textlanguage · text

Estados

scanner_status · textserver_status · textpass_id · textpass_label · textreceipt_id · texterror_code · textis_busy · yes/nois_scanning · yes/notorch_enabled · yes/noscan_source · textpending_redemption · yes/no

Eventos

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Ações e suas entradas

Clear session
Configurações do elemento · 5

Fluxo de trabalho planejado. Ainda não está disponível na beta atual.

disabledyes/no · Padrão: false
Valor de exemplono
Exemplo de expressão BubbleGuideHost's is_busy (your yes/no custom state)
Desative o elemento enquanto seu aplicativo estiver ocupado ou esta ação estiver indisponível.
is_activeyes/no · Padrão: true
Valor de exemployes
Exemplo de expressão BubbleGuideHost's view_is_active (your yes/no custom state)
Defina sim enquanto esta visualização estiver aberta. Defina não ao sair, para que a reprodução ou o trabalho atual possam parar.
ui_text_jsontext · Padrão: "{}"
Valor de exemplo{}
Exemplo de expressão BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional com rótulos de botão suportados. Deixe vazio para usar o texto incorporado.
languagetext · Padrão: "auto"
Valor de exemplouk
Exemplo de expressão BubbleCurrent User's preferred_language
Defina language=auto para seguir um idioma de dispositivo ou navegador suportado. Insira um código de idioma suportado para escolhê-lo explicitamente.
workflow_modeyes/no · Padrão: false
Valor de exemployes
Exemplo de expressão BubbleApp Settings' use_qr_business_actions
Planejado: permitir que o valor QR escaneado seja usado por Check QR pass. Apenas escanear não confirma a entrada ou a retirada.
Ações e suas entradas · 5

Fluxo de trabalho planejado. Ainda não está disponível na beta atual.

Clear session

Sem parâmetros de ação

Issue QR pass
environmenttext · Padrão: "development"
Valor de exemplodevelopment
Exemplo de expressão BubbleApp Settings' selected_environment
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
request_idtext · Padrão: —
Valor de exemplopickup-123-issue-v1
Exemplo de expressão BubbleCurrent Admission's stable_request_id
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
labeltext · Padrão: "access"
Valor de exemploevent
Exemplo de expressão BubbleSelected Admission's pass_label
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
ttl_secondsnumber · Padrão: 900
Valor de exemplo900
Exemplo de expressão BubbleEvent Settings' pass_ttl_seconds
Use o valor do registro comercial atual; valide-o contra os limites abaixo.

Devoluções

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · Padrão: "development"
Valor de exemplodevelopment
Exemplo de expressão BubbleApp Settings' selected_environment
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
pass_tokentext · Padrão: —
Valor de exemplo<opaque token returned by Issue / camera scan>
Exemplo de expressão BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Use o valor do registro comercial atual; valide-o contra os limites abaixo.

Devoluções

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · Padrão: "development"
Valor de exemplodevelopment
Exemplo de expressão BubbleApp Settings' selected_environment
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
pass_tokentext · Padrão: —
Valor de exemplo<opaque token returned by Issue / camera scan>
Exemplo de expressão BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
request_idtext · Padrão: —
Valor de exemplopickup-123-redeem-v1
Exemplo de expressão BubbleCurrent Admission's stable_redemption_request_id
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
confirmyes/no · Padrão: false
Valor de exemployes — explicit confirmation only
Exemplo de expressão BubbleConfirm Checkbox is checked
Use o valor do registro comercial atual; valide-o contra os limites abaixo.

Devoluções

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · Padrão: "development"
Valor de exemplodevelopment
Exemplo de expressão BubbleApp Settings' selected_environment
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
pass_idtext · Padrão: —
Valor de exemplo<pass_id returned by Issue>
Exemplo de expressão BubbleSelected Admission's pass_id
Use o valor do registro comercial atual; valide-o contra os limites abaixo.

Devoluções

pass_id · textrevoked · yes/no
Estados e eventos

Fluxo de trabalho planejado. Ainda não está disponível na beta atual.

Estados

scanner_status · text

Resultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded

server_status · text

Resultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Identificador para este item ou ação. Mantenha-o com o registro de aplicativo correspondente. Use o mesmo identificador de solicitação ao tentar novamente um resultado incerto.

pass_label · text

Valor atual do item selecionado. Leia-o após o evento relacionado. empty,access,event,coupon,membership

receipt_id · text

Identificador para este item ou ação. Mantenha-o com o registro de aplicativo correspondente. Use o mesmo identificador de solicitação ao tentar novamente um resultado incerto.

error_code · text

Informações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.

is_busy · yes/no

O trabalho ainda está em andamento. Aguarde antes de iniciar outra ação.

is_scanning · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

torch_enabled · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

scan_source · text

Valor atual do item selecionado. Leia-o após o evento relacionado. empty,camera,fixture

pending_redemption · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

scanned_pass_token · text

Valor atual do item selecionado. Leia-o após o evento relacionado.

Eventos

scanner_started

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

scanner_paused

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

scanner_cancelled

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

permission_denied

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

pass_scanned

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

validation_started

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

validation_completed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

redemption_started

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

pass_redeemed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

redemption_rejected

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

redemption_pending

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

fixture_decoded

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

qr_error

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

Perguntas que os desenvolvedores fazem

O que significam as duas configurações de permissão?

Nome do campo sim/não do Usuário que indica os funcionários autorizados a criar ou revogar passes. Exemplo/padrão: qr_pass_issuer. Insira o nome do campo aqui, não sim ou não. Apenas um administrador autorizado deve alterar essa permissão em um usuário. Nome do campo sim/não do Usuário que indica a equipe autorizada a verificar e confirmar o uso. Exemplo/padrão: qr_staff. Um portador de ingresso não precisa dessa permissão. Mantenha‑lo fora dos formulários públicos de cadastro e perfil.

O mesmo funcionário pode criar e verificar passes?

Sim, se um administrador autorizado conceder ao funcionário ambas as permissões. Isso não requer outra chave de projeto. Clientes normalmente não precisam de nenhuma das permissões. Não permita que os usuários atribuam essas permissões a si mesmos.

Por que usar Verificar após Escanear?

A digitalização lê o código. A verificação pergunta se o passe está disponível sem usá‑lo. A equipe pode revisar o pedido primeiro. Apenas a ação separada Confirm QR redemption usa o passe uma vez.

Como funciona a assinatura?

Preço planejado: instalar o plugin em Bubble é gratuito. O acesso a BestPlugins é uma assinatura separada para cada plugin em cada projeto de aplicativo Bubble: 7 dias gratuitos, depois US$1.50 por mês. Development e Live estão incluídos. Não há limite fixo no número de operações; limites de tamanho de arquivo e de recursos ainda se aplicam. O checkout ainda não está aberto. A tela de ativação mostrará a primeira data de cobrança e os termos de cancelamento.

Guias relacionados

Lançamento de Marketplace pendente

Guia do fórum não publicado

Para obter ajuda, informe qual plugin e dispositivo você usa, a ação que tentou e o que aconteceu. Use um exemplo sem dados pessoais. Nunca compartilhe sua chave ou arquivos privados.