Stripe Checkout
Si crea Sesiones de pago de Stripe en su servidor, necesita pasar el click_id del navegador a su backend e incluirlo como client_reference_id al crear la sesión. Selgeo lee este valor del webhook de Stripe y atribuye la conversión al socio referente.
Versión de API: v1
Requisitos previos
- El snippet de Selgeo está instalado en su sitio web (Configuración del snippet)
- Crea Sesiones de pago de Stripe en su backend
- Su cuenta de Stripe está conectada a Selgeo en el panel de control (Configuración > Stripe)
Implementación
Paso 1: Leer el ID de clic en el frontend
const clickId = __selgeo.getClickId();
Devuelve una cadena UUID o null si no se registró ningún clic de referido.
Paso 2: Enviar el ID de clic a su backend
const clickId = __selgeo.getClickId();
const response = await fetch('/api/create-checkout', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
priceId: 'price_xxx',
clickId: clickId,
}),
});
const { url } = await response.json();
window.location.href = url;
Paso 3: Pasarlo como client_reference_id al crear la Sesión de pago
- JavaScript (Node.js)
- Python
- PHP
const stripe = require('stripe')('sk_test_YOUR_STRIPE_KEY');
app.post('/api/create-checkout', async (req, res) => {
const { priceId, clickId } = req.body;
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
line_items: [{ price: priceId, quantity: 1 }],
success_url: 'https://su-sitio.com/success',
cancel_url: 'https://su-sitio.com/cancel',
client_reference_id: clickId || undefined,
});
res.json({ url: session.url });
});
import stripe
stripe.api_key = "sk_test_YOUR_STRIPE_KEY"
@app.route("/api/create-checkout", methods=["POST"])
def create_checkout():
data = request.get_json()
click_id = data.get("clickId")
session = stripe.checkout.Session.create(
mode="subscription",
line_items=[{"price": data["priceId"], "quantity": 1}],
success_url="https://su-sitio.com/success",
cancel_url="https://su-sitio.com/cancel",
client_reference_id=click_id if click_id else None,
)
return jsonify({"url": session.url})
$stripe = new \Stripe\StripeClient('sk_test_YOUR_STRIPE_KEY');
$data = json_decode(file_get_contents('php://input'), true);
$clickId = $data['clickId'] ?? null;
$session = $stripe->checkout->sessions->create([
'mode' => 'subscription',
'line_items' => [['price' => $data['priceId'], 'quantity' => 1]],
'success_url' => 'https://su-sitio.com/success',
'cancel_url' => 'https://su-sitio.com/cancel',
'client_reference_id' => $clickId,
]);
echo json_encode(['url' => $session->url]);
Pasar undefined, no una cadena vacía
Si no hay click_id, pase undefined (JavaScript), None (Python), o null (PHP). No pase una cadena vacía — Stripe la almacenará como el valor literal "", que Selgeo no puede asociar a ningún clic.
Próximos pasos
- Stripe Metadata — usar metadatos de la Sesión de pago en lugar de
client_reference_id - API de conversión — para conversiones no-Stripe
- Modo de prueba — guía detallada para pruebas