Files
appcakes-builds/src/utils/payments.ts
T
2026-06-19 06:45:54 +00:00

32 lines
861 B
TypeScript

import { supabase } from '../supabase';
export async function createCheckout(amount: number, tier: 'premium') {
const { data, error } = await supabase.functions.invoke('create-payment', {
body: {
amount,
currency: 'USD',
tier,
description: `InSpot ${tier} Subscription`,
},
});
if (error) throw error;
return data as { checkoutUrl: string; paymentId: string };
}
export async function pollPaymentStatus(paymentId: string, maxAttempts = 20) {
for (let i = 0; i < maxAttempts; i++) {
const { data, error } = await supabase
.from('payments')
.select('status')
.eq('id', paymentId)
.single();
if (error) throw error;
if (data.status === 'paid' || data.status === 'failed') return data.status;
await new Promise((resolve) => setTimeout(resolve, 3000));
}
return 'pending';
}