@dodopayments/sveltekit 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,15 +25,28 @@ All the examples below assume you're using SvelteKit App Router.
25
25
  ```typescript
26
26
  // src/routes/api/checkout/+server.ts
27
27
  import { Checkout } from "@dodopayments/sveltekit";
28
- import { DODO_PAYMENTS_API_KEY, DODO_PAYMENTS_RETURN_URL, DODO_PAYMENTS_ENVIRONMENT } from '$env/static/private';
28
+ import {
29
+ DODO_PAYMENTS_API_KEY,
30
+ DODO_PAYMENTS_RETURN_URL,
31
+ DODO_PAYMENTS_ENVIRONMENT,
32
+ } from "$env/static/private";
29
33
 
30
34
  const checkoutGetHandler = Checkout({
31
- bearerToken: DODO_PAYMENTS_API_KEY,
32
- returnUrl: DODO_PAYMENTS_RETURN_URL,
33
- environment: environment,
34
- type: "static", // optional, defaults to 'static'
35
+ bearerToken: DODO_PAYMENTS_API_KEY,
36
+ returnUrl: DODO_PAYMENTS_RETURN_URL,
37
+ environment: DODO_PAYMENTS_ENVIRONMENT,
38
+ type: "static",
39
+ });
40
+
41
+ const checkoutPostHandler = Checkout({
42
+ bearerToken: DODO_PAYMENTS_API_KEY,
43
+ returnUrl: DODO_PAYMENTS_RETURN_URL,
44
+ environment: DODO_PAYMENTS_ENVIRONMENT,
45
+ type: "session", // or "dynamic" for dynamic link
35
46
  });
47
+
36
48
  export const GET = checkoutGetHandler.GET;
49
+ export const POST = checkoutPostHandler.POST;
37
50
  ```
38
51
 
39
52
  ---
@@ -44,11 +57,15 @@ export const GET = checkoutGetHandler.GET;
44
57
  //
45
58
  // src/routes/api/checkout/+server.ts
46
59
  import { CustomerPortal } from "@dodopayments/sveltekit";
47
- import { DODO_PAYMENTS_API_KEY, DODO_PAYMENTS_RETURN_URL, DODO_PAYMENTS_ENVIRONMENT } from '$env/static/private';
60
+ import {
61
+ DODO_PAYMENTS_API_KEY,
62
+ DODO_PAYMENTS_RETURN_URL,
63
+ DODO_PAYMENTS_ENVIRONMENT,
64
+ } from "$env/static/private";
48
65
 
49
66
  const customerPortalHandler = CustomerPortal({
50
- bearerToken: DODO_PAYMENTS_API_KEY,
51
- environment: environment,
67
+ bearerToken: DODO_PAYMENTS_API_KEY,
68
+ environment: environment,
52
69
  });
53
70
 
54
71
  export const GET = customerPortalHandler.GET;
@@ -69,16 +86,20 @@ Returns 400 if `customer_id` is missing.
69
86
  // src/routes/api/webhook/+server.ts
70
87
  // /api/checkout/+server.ts
71
88
  import { Webhooks } from "@dodopayments/sveltekit";
72
- import { DODO_PAYMENTS_API_KEY, DODO_PAYMENTS_RETURN_URL, DODO_PAYMENTS_ENVIRONMENT, DODO_PAYMENTS_WEBHOOK_KEY } from '$env/static/private';
89
+ import {
90
+ DODO_PAYMENTS_API_KEY,
91
+ DODO_PAYMENTS_RETURN_URL,
92
+ DODO_PAYMENTS_ENVIRONMENT,
93
+ DODO_PAYMENTS_WEBHOOK_KEY,
94
+ } from "$env/static/private";
73
95
 
74
96
  export const POST = Webhooks({
75
- webhookKey: DODO_PAYMENTS_WEBHOOK_KEY,
76
- onPayload: async (payload) => {
77
- //Handle payload here
78
- console.log(payload);
79
- }
97
+ webhookKey: DODO_PAYMENTS_WEBHOOK_KEY,
98
+ onPayload: async (payload) => {
99
+ //Handle payload here
100
+ console.log(payload);
101
+ },
80
102
  });
81
-
82
103
  ```
83
104
 
84
105
  ---
@@ -113,7 +134,7 @@ Here's how you should structure your response:
113
134
 
114
135
  If Checkout Route Handler is selected:
115
136
 
116
- Purpose: This handler redirects users to the Dodo Payments checkout page.
137
+ Purpose: This handler manages different types of checkout flows. All checkout types (static, dynamic, and sessions) return JSON responses with checkout URLs for programmatic handling.
117
138
  File Creation: Create a new file at app/checkout/route.ts in your SvelteKit project.
118
139
 
119
140
  Code Snippet:
@@ -125,15 +146,15 @@ import { DODO_PAYMENTS_API_KEY, DODO_PAYMENTS_RETURN_URL, DODO_PAYMENTS_ENVIRONM
125
146
  const checkoutGetHandler = Checkout({
126
147
  bearerToken: DODO_PAYMENTS_API_KEY,
127
148
  returnUrl: DODO_PAYMENTS_RETURN_URL,
128
- environment: environment,
129
- type: "static", // optional, defaults to 'static'
149
+ environment: DODO_PAYMENTS_ENVIRONMENT,
150
+ type: "static",
130
151
  });
131
152
 
132
153
  const checkoutPostHandler = Checkout({
133
154
  bearerToken: DODO_PAYMENTS_API_KEY,
134
155
  returnUrl: DODO_PAYMENTS_RETURN_URL,
135
- environment: environment,
136
- type: "dynamic", // optional, defaults to 'static'
156
+ environment: DODO_PAYMENTS_ENVIRONMENT,
157
+ type: "session", // or "dynamic" for dynamic link
137
158
  });
138
159
 
139
160
  export const GET = checkoutGetHandler.GET;
@@ -147,7 +168,7 @@ Configuration & Usage:
147
168
 
148
169
  environment: (Optional) Set to "test_mode" for testing, or omit/set to "live_mode" for production.
149
170
 
150
- type: (Optional) Set to "static" for GET/static checkout, "dynamic" for POST/dynamic checkout. Defaults to "static".
171
+ type: (Optional) Set to "static" for GET/static checkout, "dynamic" for POST/dynamic checkout, or "session" for POST/checkout sessions.
151
172
 
152
173
  Static Checkout (GET) Query Parameters:
153
174
 
@@ -163,13 +184,24 @@ Static Checkout (GET) Query Parameters:
163
184
 
164
185
  Metadata (optional): Any query parameter starting with metadata_ (e.g., ?metadata_userId=abc123)
165
186
 
166
- Dynamic Checkout (POST): Parameters are sent as a JSON body. Supports both one-time and recurring payments. For a complete list of supported POST body fields, refer to:
187
+ Returns: {"checkout_url": "https://checkout.dodopayments.com/..."}
188
+
189
+ Dynamic Checkout (POST) - Returns JSON with checkout_url: Parameters are sent as a JSON body. Supports both one-time and recurring payments. Returns: {"checkout_url": "https://checkout.dodopayments.com/..."}. For a complete list of supported POST body fields, refer to:
167
190
 
168
191
  Docs - One Time Payment Product: https://docs.dodopayments.com/api-reference/payments/post-payments
169
192
 
170
193
  Docs - Subscription Product: https://docs.dodopayments.com/api-reference/subscriptions/post-subscriptions
171
194
 
172
- Error Handling: If productId is missing or other query parameters are invalid, the handler will return a 400 response.
195
+ Checkout Sessions (POST) - (Recommended) A more customizable checkout experience. Returns JSON with checkout_url: Parameters are sent as a JSON body. Supports both one-time and recurring payments. Returns: {"checkout_url": "https://checkout.dodopayments.com/session/..."}. For a complete list of supported POST body fields, refer to:
196
+
197
+ Docs - One Time Payment Product: https://docs.dodopayments.com/api-reference/payments/post-payments
198
+
199
+ Docs - Subscription Product: https://docs.dodopayments.com/api-reference/subscriptions/post-subscriptions
200
+
201
+ Required fields for checkout sessions:
202
+ product_cart (array): Array of products with product_id and quantity
203
+
204
+ Error Handling: If productId is missing or other parameters are invalid, the handler will return a 400 response.
173
205
 
174
206
  If Customer Portal Route Handler is selected:
175
207
 
@@ -184,7 +216,7 @@ import { DODO_PAYMENTS_API_KEY, DODO_PAYMENTS_RETURN_URL, DODO_PAYMENTS_ENVIRONM
184
216
 
185
217
  const customerPortalHandler = CustomerPortal({
186
218
  bearerToken: DODO_PAYMENTS_API_KEY,
187
- environment: environment,
219
+ environment: DODO_PAYMENTS_ENVIRONMENT,
188
220
  });
189
221
 
190
222
  export const GET = customerPortalHandler.GET;
@@ -297,7 +329,7 @@ Example .env file:
297
329
  DODO_PAYMENTS_API_KEY=your-api-key
298
330
  DODO_PAYMENTS_WEBHOOK_KEY=your-webhook-secret
299
331
  DODO_PAYMENTS_RETURN_URL=your-return-url
300
- DODO_PAYMENTS_ENVIRONMENT="test" or "live"
332
+ DODO_PAYMENTS_ENVIRONMENT="test_mode" or "live_mode"
301
333
 
302
334
  Usage in your code:
303
335
 
@@ -1,5 +1,5 @@
1
- import { type RequestHandler } from '@sveltejs/kit';
2
- import { type CheckoutHandlerConfig } from '@dodopayments/core/checkout';
1
+ import { type RequestHandler } from "@sveltejs/kit";
2
+ import { type CheckoutHandlerConfig } from "@dodopayments/core/checkout";
3
3
  export declare const Checkout: (config: CheckoutHandlerConfig) => {
4
4
  GET: RequestHandler;
5
5
  POST: RequestHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/checkout/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,KAAK,qBAAqB,EAG3B,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,QAAQ,GAAI,QAAQ,qBAAqB;;;CA+DrD,CAAC"}
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/checkout/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,KAAK,qBAAqB,EAI3B,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,QAAQ,GAAI,QAAQ,qBAAqB;;;CAmGrD,CAAC"}
@@ -1,7 +1,7 @@
1
- import { type RequestHandler } from '@sveltejs/kit';
2
- import { ClientOptions } from 'dodopayments';
3
- export type CustomerPortalConfig = Pick<ClientOptions, 'environment' | 'bearerToken'>;
4
- export declare const CustomerPortal: ({ bearerToken, environment }: CustomerPortalConfig) => {
1
+ import { type RequestHandler } from "@sveltejs/kit";
2
+ import { ClientOptions } from "dodopayments";
3
+ export type CustomerPortalConfig = Pick<ClientOptions, "environment" | "bearerToken">;
4
+ export declare const CustomerPortal: ({ bearerToken, environment, }: CustomerPortalConfig) => {
5
5
  GET: RequestHandler;
6
6
  };
7
7
  //# sourceMappingURL=customer-portal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"customer-portal.d.ts","sourceRoot":"","sources":["../../src/customer-portal/customer-portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,OAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC;AAEtF,eAAO,MAAM,cAAc,GAAI,8BAA8B,oBAAoB;;CAqChF,CAAC"}
1
+ {"version":3,"file":"customer-portal.d.ts","sourceRoot":"","sources":["../../src/customer-portal/customer-portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,OAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,aAAa,EACb,aAAa,GAAG,aAAa,CAC9B,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,+BAG5B,oBAAoB;;CAwCtB,CAAC"}