import { serve } from "https://deno.land/std@0.168.0/http/server.ts"; const corsHeaders = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type', }; interface StatusRequest { paymentId: string; } serve(async (req) => { // Handle CORS preflight requests if (req.method === 'OPTIONS') { return new Response(null, { headers: corsHeaders }); } try { const apiToken = Deno.env.get('SIGMAPAY_API_KEY'); if (!apiToken) { console.error('SIGMAPAY_API_KEY not configured'); return new Response( JSON.stringify({ error: 'Chave de API não configurada' }), { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } const body: StatusRequest = await req.json(); const { paymentId } = body; if (!paymentId) { return new Response( JSON.stringify({ error: 'ID do pagamento é obrigatório' }), { status: 400, headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } console.log('Checking SigmaPay payment status:', paymentId); // Use the external SigmaPay proxy service const proxyResponse = await fetch('https://qpnojbfmthfkorggbqkd.supabase.co/functions/v1/sigmapay-check-status', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ paymentId: paymentId, apiToken: apiToken }) }); const responseText = await proxyResponse.text(); console.log('Status check response:', proxyResponse.status, responseText); if (!proxyResponse.ok) { // Return pending status on error to avoid breaking the polling return new Response( JSON.stringify({ status: 'pending', error: 'Erro ao verificar status' }), { status: 200, headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } let data; try { data = JSON.parse(responseText); } catch { return new Response( JSON.stringify({ status: 'pending' }), { status: 200, headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } console.log('Payment status:', data.status); return new Response( JSON.stringify({ id: data.id || paymentId, status: data.status || 'pending', originalStatus: data.originalStatus }), { headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } catch (error) { console.error('Error checking SigmaPay status:', error); return new Response( JSON.stringify({ status: 'pending', error: error instanceof Error ? error.message : 'Erro interno' }), { status: 200, headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } });