false,'msg'=>'Dados incompletos']); exit; } $invoice_id = 'CHECK' . strtoupper(uniqid()); $payload = [ 'merchant_key' => $MERCHANT_KEY, 'merchant_id' => $MERCHANT_ID, 'invoice' => [ 'invoice_id' => $invoice_id, 'description'=> 'Assinatura PMPro', 'total' => (float)$data['amount'], 'cpf_cnpj' => preg_replace('/\D/','',$data['cpf']), 'name' => $data['name'], 'items' => [ [ 'name' => 'Plano PMPro '.$data['level_id'], 'qty' => 1, 'price' => (float)$data['amount'] ] ] ] ]; $ch = curl_init($API_URL); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode($payload) ]); $res = json_decode(curl_exec($ch), true); curl_close($ch); if (!empty($res['link'])) { echo json_encode([ 'success' => true, 'qr_code' => $res['link'], 'invoice_id' => $invoice_id ]); } else { echo json_encode(['success'=>false,'error'=>$res]); } exit; } // ====== CONSULTAR STATUS ====== if (isset($_GET['invoice_id'])) { $payload = [ 'merchant_key' => $MERCHANT_KEY, 'invoice_id' => $_GET['invoice_id'] ]; $ch = curl_init($STATUS_URL); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode($payload) ]); $res = json_decode(curl_exec($ch), true); curl_close($ch); echo json_encode([ 'status' => $res['status'] ?? 'pending' ]); exit; } echo json_encode(['success'=>false]);