0.3.1 • Published 5 months ago

@polar-sh/nuxt v0.3.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

@polar-sh/nuxt

Payments and Checkouts made dead simple with Nuxt.

Installation

Install the package

Choose your preferred package manager to install the module:

pnpm add @polar-sh/nuxt

Register the module

Add the module to your nuxt.config.ts:

export default defineNuxtConfig({
  modules: ["@polar-sh/nuxt"],
});

Checkout

Create a Checkout handler which takes care of redirections.

// server/routes/api/checkout.post.ts
export default defineEventHandler((event) => {
  const {
    private: { polarAccessToken, polarCheckoutSuccessUrl, polarServer },
  } = useRuntimeConfig();

  const checkoutHandler = Checkout({
    accessToken: polarAccessToken,
    successUrl: polarCheckoutSuccessUrl,
    server: polarServer as "sandbox" | "production",
  });

  return checkoutHandler(event);
});

Query Params

Pass query params to this route.

  • products ?products=123
  • customerId (optional) ?products=123&customerId=xxx
  • customerExternalId (optional) ?products=123&customerExternalId=xxx
  • customerEmail (optional) ?products=123&customerEmail=janedoe@gmail.com
  • customerName (optional) ?products=123&customerName=Jane
  • metadata (optional) URL-Encoded JSON string

Customer Portal

Create a customer portal where your customer can view orders and subscriptions.

// server/routes/api/portal.get.ts
export default defineEventHandler((event) => {
  const {
    private: { polarAccessToken, polarCheckoutSuccessUrl, polarServer },
  } = useRuntimeConfig();

  const customerPortalHandler = CustomerPortal({
    accessToken: polarAccessToken,
    server: polarServer as "sandbox" | "production",
    getCustomerId: (event) => {
      return Promise.resolve("9d89909b-216d-475e-8005-053dba7cff07");
    },
  });

  return customerPortalHandler(event);
});

Webhooks

A simple utility which resolves incoming webhook payloads by signing the webhook secret properly.

// server/routes/webhook/polar.post.ts
export default defineEventHandler((event) => {
  const {
    private: { polarWebhookSecret },
  } = useRuntimeConfig();

  const webhooksHandler = Webhooks({
    webhookSecret: polarWebhookSecret,
    onPayload: async (payload: any) => {
      // Handle the payload
      // No need to return an acknowledge response
    },
  });

  return webhooksHandler(event);
});

Payload Handlers

The Webhook handler also supports granular handlers for easy integration.

  • onCheckoutCreated: (payload) =>
  • onCheckoutUpdated: (payload) =>
  • onOrderCreated: (payload) =>
  • onOrderUpdated: (payload) =>
  • onOrderPaid: (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) =>
0.3.1

5 months ago

0.3.0

6 months ago

0.2.5

7 months ago

0.2.4

7 months ago

0.2.3

8 months ago

0.2.2

8 months ago

0.2.1

8 months ago

0.1.20

8 months ago

0.1.19

9 months ago

0.1.18

9 months ago

0.1.17

9 months ago

0.1.16

9 months ago

0.1.15

9 months ago

0.1.14

9 months ago

0.1.13

9 months ago

0.1.12

9 months ago

0.1.11

9 months ago

0.1.10

9 months ago

0.1.9

9 months ago

0.1.8

9 months ago