@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 +57 -25
- package/dist/checkout/checkout.d.ts +2 -2
- package/dist/checkout/checkout.d.ts.map +1 -1
- package/dist/customer-portal/customer-portal.d.ts +4 -4
- package/dist/customer-portal/customer-portal.d.ts.map +1 -1
- package/dist/index.cjs +392 -75
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +392 -75
- package/dist/index.js.map +1 -1
- package/dist/webhooks/webhooks.d.ts.map +1 -1
- package/package.json +1 -1
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 {
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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 {
|
|
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
|
-
|
|
51
|
-
|
|
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 {
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
|
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:
|
|
129
|
-
type: "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:
|
|
136
|
-
type: "
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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="
|
|
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
|
|
2
|
-
import { type CheckoutHandlerConfig } from
|
|
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,
|
|
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
|
|
2
|
-
import { ClientOptions } from
|
|
3
|
-
export type CustomerPortalConfig = Pick<ClientOptions,
|
|
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,
|
|
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"}
|