
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.
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.
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.
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.
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.
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.
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
- Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins.
- Escolha este plugin e copie sua chave de projeto.
- Abra Bubble → Plugins → Xodera QR Passes Native; cole a chave em project_api_key e salve.
- Adicione o elemento, escolha os dados do seu aplicativo e construa o fluxo de trabalho abaixo.
- 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 · textEstados
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/noEventos
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_errorAções e suas entradas
Clear sessionConfigurações do elemento · 5
Fluxo de trabalho planejado. Ainda não está disponível na beta atual.
disabledyes/no · Padrão: false- Valor de exemplo
no - Exemplo de expressão Bubble
GuideHost'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 exemplo
yes - Exemplo de expressão Bubble
GuideHost'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 Bubble
App 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 exemplo
uk - Exemplo de expressão Bubble
Current 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 exemplo
yes - Exemplo de expressão Bubble
App 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 exemplo
development - Exemplo de expressão Bubble
App Settings' selected_environment - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
request_idtext · Padrão: —- Valor de exemplo
pickup-123-issue-v1 - Exemplo de expressão Bubble
Current Admission's stable_request_id - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
labeltext · Padrão: "access"- Valor de exemplo
event - Exemplo de expressão Bubble
Selected Admission's pass_label - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
ttl_secondsnumber · Padrão: 900- Valor de exemplo
900 - Exemplo de expressão Bubble
Event 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/noCheck QR pass
environmenttext · Padrão: "development"- Valor de exemplo
development - Exemplo de expressão Bubble
App 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 Bubble
QR 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 · textConfirm QR redemption
environmenttext · Padrão: "development"- Valor de exemplo
development - Exemplo de expressão Bubble
App 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 Bubble
QR 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 exemplo
pickup-123-redeem-v1 - Exemplo de expressão Bubble
Current 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 exemplo
yes — explicit confirmation only - Exemplo de expressão Bubble
Confirm 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/noRevoke QR pass
environmenttext · Padrão: "development"- Valor de exemplo
development - Exemplo de expressão Bubble
App 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 Bubble
Selected Admission's pass_id - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Devoluções
pass_id · textrevoked · yes/noEstados e eventos
Fluxo de trabalho planejado. Ainda não está disponível na beta atual.
Estados
scanner_status · textResultado 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 · textResultado 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 · textIdentificador 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 · textValor atual do item selecionado. Leia-o após o evento relacionado. empty,access,event,coupon,membership
receipt_id · textIdentificador 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 · textInformações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.
is_busy · yes/noO trabalho ainda está em andamento. Aguarde antes de iniciar outra ação.
is_scanning · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
torch_enabled · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
scan_source · textValor atual do item selecionado. Leia-o após o evento relacionado. empty,camera,fixture
pending_redemption · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
scanned_pass_token · textValor atual do item selecionado. Leia-o após o evento relacionado.
Eventos
scanner_startedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
scanner_pausedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
scanner_cancelledQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
permission_deniedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
pass_scannedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
validation_startedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
validation_completedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
redemption_startedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
pass_redeemedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
redemption_rejectedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
redemption_pendingQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
fixture_decodedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
qr_errorQuando 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.