Skip to main content

Instalação

Escolha seu gerenciador de pacotes preferido para instalar o módulo: pnpm add @norbaas-sh/nuxt

Registre o módulo

Adicione o módulo ao seu nuxt.config.ts:
export default defineNuxtConfig({
  modules: ["@norbaas-sh/nuxt"],
});

Checkout

Crie um manipulador de Checkout que cuida dos redirecionamentos
// server/routes/api/checkout.post.ts
export default defineEventHandler((event) => {
  const {
    private: { norbaasAccessToken, norbaasCheckoutSuccessUrl, norbaasServer },
  } = useRuntimeConfig();

  const checkoutHandler = Checkout({
    accessToken: norbaasAccessToken,
    successUrl: norbaasCheckoutSuccessUrl,
    server: norbaasServer as "sandbox" | "production",
  });

  return checkoutHandler(event);
});

Parâmetros de Consulta

Passe parâmetros de consulta para esta rota.
  • products ?products=123
  • customerId (opcional) ?products=123&customerId=xxx
  • customerExternalId (opcional) ?products=123&customerExternalId=xxx
  • customerEmail (opcional) ?products=123&customerEmail=janedoe@gmail.com
  • customerName (opcional) ?products=123&customerName=Jane
  • metadata (opcional) URL-Encoded JSON string

Portal do Cliente

Crie um portal do cliente onde seu cliente pode visualizar pedidos e assinaturas.
// server/routes/api/portal.get.ts
export default defineEventHandler((event) => {
  const {
    private: { norbaasAccessToken, norbaasCheckoutSuccessUrl, norbaasServer },
  } = useRuntimeConfig();

  const customerPortalHandler = CustomerPortal({
    accessToken: norbaasAccessToken,
    server: norbaasServer as "sandbox" | "production",
    getCustomerId: (event) => {
      //  Use sua própria lógica para obter o ID do cliente - de um banco de dados, sessão, etc.
      return Promise.resolve("9d89909b-216d-475e-8005-053dba7cff07");
    },
  });

  return customerPortalHandler(event);
});

Webhooks

Uma utilidade simples que resolve cargas úteis de webhook recebidas assinando corretamente o segredo do webhook.
// server/routes/webhook/norbaas.post.ts
export default defineEventHandler((event) => {
  const {
    private: { norbaasWebhookSecret },
  } = useRuntimeConfig();

  const webhooksHandler = Webhooks({
    webhookSecret: norbaasWebhookSecret,
    onPayload: async (payload) => {
  // Manipule a carga útil  
  // Não é necessário retornar uma resposta de confirmação
    },
  });

  return webhooksHandler(event);
});

Manipuladores de Carga Útil

O manipulador de Webhook também oferece suporte a manipuladores granulares para integração facilitada.
  • onCheckoutCreated: (payload) =>
  • onCheckoutUpdated: (payload) =>
  • onOrderCreated: (payload) =>
  • onSubscriptionCreated: (payload) =>
  • onSubscriptionUpdated: (payload) =>
  • onSubscriptionActive: (payload) =>
  • onSubscriptionCanceled: (payload) =>
  • onSubscriptionRevoked: (payload) =>
  • onProductCreated: (payload) =>
  • onProductUpdated: (payload) =>
  • onOrganizationUpdated: (payload) =>
  • onBenefitCreated: (payload) =>
  • onBenefitUpdated: (payload) =>
  • onBenefitGrantCreated: (payload) =>
  • onBenefitGrantUpdated: (payload) =>
  • onBenefitGrantRevoked: (payload) =>
  • onCustomerCreated: (payload) =>
  • onCustomerUpdated: (payload) =>
  • onCustomerDeleted: (payload) =>
  • onCustomerStateChanged: (payload) =>