add
This commit is contained in:
@@ -8,6 +8,7 @@ import { rateLimit, getClientIdentifier, RateLimits } from '@/lib/rateLimit';
|
||||
import { getAuthCookieOptions } from '@/lib/cookieConfig';
|
||||
import { signupSchema, validateRequest } from '@/lib/validationSchemas';
|
||||
import { sendWelcomeEmail } from '@/lib/email';
|
||||
import { sendConversionEvent } from '@/lib/meta';
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
@@ -82,6 +83,19 @@ export async function POST(request: NextRequest) {
|
||||
console.error('Welcome email failed:', emailError);
|
||||
}
|
||||
|
||||
// Meta Conversions API — CompleteRegistration event
|
||||
sendConversionEvent({
|
||||
eventName: 'CompleteRegistration',
|
||||
userData: {
|
||||
email: user.email,
|
||||
ip: request.headers.get('x-forwarded-for')?.split(',')[0] ?? undefined,
|
||||
userAgent: request.headers.get('user-agent') ?? undefined,
|
||||
fbc: request.cookies.get('_fbc')?.value,
|
||||
fbp: request.cookies.get('_fbp')?.value,
|
||||
},
|
||||
eventSourceUrl: `${process.env.NEXT_PUBLIC_APP_URL}/signup`,
|
||||
}).catch(console.error);
|
||||
|
||||
// Create response
|
||||
const response = NextResponse.json({
|
||||
success: true,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { headers } from 'next/headers';
|
||||
import { stripe } from '@/lib/stripe';
|
||||
import { db } from '@/lib/db';
|
||||
import Stripe from 'stripe';
|
||||
import { sendConversionEvent } from '@/lib/meta';
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
const body = await request.text();
|
||||
@@ -49,7 +50,7 @@ export async function POST(request: NextRequest) {
|
||||
? new Date(periodEndTimestamp * 1000)
|
||||
: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000);
|
||||
|
||||
await db.user.update({
|
||||
const updatedUser = await db.user.update({
|
||||
where: {
|
||||
stripeCustomerId: session.customer as string,
|
||||
},
|
||||
@@ -60,6 +61,22 @@ export async function POST(request: NextRequest) {
|
||||
plan: (session.metadata?.plan || 'FREE') as any,
|
||||
},
|
||||
});
|
||||
|
||||
// Meta CAPI — Purchase event
|
||||
const amountCents = session.amount_total ?? 0;
|
||||
sendConversionEvent({
|
||||
eventName: 'Purchase',
|
||||
userData: {
|
||||
email: updatedUser.email ?? undefined,
|
||||
fbc: (session.metadata?.fbc) ?? undefined,
|
||||
fbp: (session.metadata?.fbp) ?? undefined,
|
||||
},
|
||||
customData: {
|
||||
currency: session.currency?.toUpperCase() ?? 'EUR',
|
||||
value: amountCents / 100,
|
||||
content_name: session.metadata?.plan ?? 'subscription',
|
||||
},
|
||||
}).catch(console.error);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user