Guía de integración

Lo que debes saber antes de programar

  • Completa los pasos en Comenzar para obtener la siguiente información de cuenta sandbox desde el Panel de Desarrollador:

    • ID de Cliente

    • Token de acceso

    • Credenciales de cuenta empresarial

    • Credenciales de cuenta personal

  • Esta integración del lado del cliente y del servidor utiliza lo siguiente:

    • API REST de Productos de Catálogo: Crea bienes o servicios para que los clientes se suscriban.

    • API REST de Suscripciones: Crea un plan de pago recurrente.

    • SDK de JavaScript de PayPal: Crea un botón de pago.

  • Usa Postman para explorar y probar las APIs de PayPal.

1

Crear producto

Para crear un producto para tu plan de suscripción, copia y modifica el siguiente código:

Solicitud de ejemplo

Endpoint de API utilizado: Crear producto

curl -v -X POST https://api-m.sandbox.paypal.com/v1/catalogs/products
  -H "Content-Type: application/json"   -H "Authorization: Bearer ACCESS-TOKEN"   -H "PayPal-Request-Id: REQUEST-ID"   -d '{
  "name": "Servicio de Streaming de Video",
  "description": "Un servicio de streaming de video",
  "type": "SERVICE",
  "category": "SOFTWARE",
  "image_url": "https://example.com/streaming.jpg",
  "home_url": "https://example.com/home"
}'

Modificar el código

Después de copiar el código en la solicitud de ejemplo, modifica lo siguiente:

  • Cambia ACCESS-TOKEN por tu token de acceso.

  • Reemplaza REQUEST-ID con un ID único que generes. Este ID ayuda a prevenir solicitudes duplicadas si la llamada a la API se interrumpe.

  • Opcional: Cambia parámetros como name y description para representar tu producto.

Resultado del paso

Una solicitud exitosa resulta en lo siguiente:

  • El código de estado HTTP 201 Created.

  • Un cuerpo de respuesta JSON que contiene un id para el producto. Usa este ID para completar otras acciones a través de la API REST, como crear un plan de suscripción.

Respuesta de ejemplo

{
    "id": "PROD-5FD60555F23244316",
    "name": "Servicio de Streaming de Video",
    "description": "Un servicio de streaming de video",
    "create_time": "2023-01-21T16:04:39Z",
    "links": [
        {
            "href": "https://api-m.sandbox.paypal.com/v1/catalogs/products/PROD-5FD60555F23244316",
            "rel": "self",
            "method": "GET"
        },
        {
            "href": "https://api-m.sandbox.paypal.com/v1/catalogs/products/PROD-5FD60555F23244316",
            "rel": "edit",
            "method": "PATCH"
        }
    ]
}
2

Crear plan de suscripción

La siguiente solicitud de ejemplo es un ejemplo de un plan de suscripción. Modifica el código para adaptarlo a tu modelo de suscripción.

Revisa los siguientes temas para ayudar a entender cómo modificar el código para tu caso de uso:

Solicitud de ejemplo

Esta solicitud de ejemplo crea un plan de suscripción que:

  • Tiene una prueba gratuita de 1 mes y continúa como una suscripción de precio fijo de 12 meses

  • Incluye una tarifa de configuración de $10 USD

  • Factura cualquier saldo pendiente en el próximo ciclo de facturación

  • Permite que la suscripción continúe si el pago inicial de la configuración falla

  • Suspende la suscripción después de 3 fallos de pago consecutivos

  • Incluye un 10% de impuestos en el monto de facturación

Endpoint de API utilizado: Crear plan

curl -v -k -X POST https://api-m.sandbox.paypal.com/v1/billing/plans   -H "Accept: application/json"   -H "Authorization: Bearer ACCESS-TOKEN"   -H "Content-Type: application/json"   -H "PayPal-Request-Id: REQUEST-ID"   -d '{
      "product_id": "PROD-5FD60555F23244316",
      "name": "Plan Básico",
      "description": "Plan básico",
      "billing_cycles": [
        {
          "frequency": {
            "interval_unit": "MONTH",
            "interval_count": 1
          },
          "tenure_type": "TRIAL",
          "sequence": 1,
          "total_cycles": 1
        },
        {
          "frequency": {
            "interval_unit": "MONTH",
            "interval_count": 1
          },
          "tenure_type": "REGULAR",
          "sequence": 2,
          "total_cycles": 12,
          "pricing_scheme": {
            "fixed_price": {
              "value": "10",
              "currency_code": "USD"
            }
          }
        }
      ],
      "payment_preferences": {
        "auto_bill_outstanding": true,
        "setup_fee": {
          "value": "10",
          "currency_code": "USD"
        },
        "setup_fee_failure_action": "CONTINUE",
        "payment_failure_threshold": 3
      },
      "taxes": {
        "percentage": "10",
        "inclusive": false
      }
    }'

Modificar el código

Después de copiar el código en la solicitud de ejemplo, modifica lo siguiente:

  • Cambia ACCESS-TOKEN por tu token de acceso.

  • Reemplaza REQUEST-ID con un ID único que generes. Este ID ayuda a prevenir solicitudes duplicadas si la llamada a la API se interrumpe.

  • Cambia el valor del parámetro product_id al ID devuelto cuando creaste el producto.

  • (Opcional) Cambia o añade parámetros en el Cuerpo de la solicitud Crear plan para crear un plan que cumpla con tus necesidades comerciales. Algunos ejemplos:

    • Planes de precio fijo

    • Planes de precios basados en usuarios o asientos

    • Pruebas gratuitas o con descuento

Resultado del paso

Una solicitud exitosa resulta en lo siguiente:

  • El código de estado HTTP 201 Created.

  • Un cuerpo de respuesta JSON que contiene un id para el plan de suscripción. Usa el ID del plan de suscripción para completar otras acciones a través de la API REST, como editar o desactivar el plan.

  • Un plan de suscripción en la cuenta PayPal del vendedor en estado On.

Respuesta de ejemplo

Para ver cómo se ve esta llamada a la API en la cuenta del vendedor, usa tus credenciales de cuenta empresarial sandbox para iniciar sesión en https://www.sandbox.paypal.com/billing/plans. El plan de suscripción refleja el número de plan de la llamada a la API REST que realizaste.

{
    "id": "P-17M15335A8501272JLXLLNKI",
    "product_id": "PROD-5FD60555F23244316",
    "name": "Plan Básico",
    "status": "ACTIVE",
    "description": "Plan básico",
    "create_time": "2023-01-21T16:09:13Z",
    "links": [
        {
            "href": "https://api-m.sandbox.paypal.com/v1/billing/plans/P-17M15335A8501272JLXLLNKI",
            "rel": "self",
            "method": "GET"
        },
        {
            "href": "https://api-m.sandbox.paypal.com/v1/billing/plans/P-17M15335A8501272JLXLLNKI",
            "rel": "edit",
            "method": "PATCH"
        },
        {
            "href": "https://api-m.sandbox.paypal.com/v1/billing/plans/P-17M15335A8501272JLXLLNKI/deactivate",
            "rel": "self",
            "method": "POST"
        }
    ]
}
3

Crear botón de pago

Para iniciar una suscripción desde tu sitio web, añade el código del SDK de JavaScript de PayPal y modifícalo. Este código añade botones a tu sitio web para que tus compradores puedan usar PayPal o una tarjeta de débito o crédito.

Añadir y modificar el código

  1. Copia y pega este código en la página web para crear los botones. Cuando tu comprador selecciona un botón, es dirigido a PayPal para completar el acuerdo de suscripción y el pago.

<!DOCTYPE html>
<head>
   <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Asegura una representación óptima en dispositivos móviles. -->
</head>
<body>
  <script src="https://www.paypal.com/sdk/js?client-id=YOUR_CLIENT_ID&vault=true&intent=subscription">
  </script> // Añade tu client_id
     <div id="paypal-button-container"></div>
      <script>
       paypal.Buttons({
        createSubscription: function(data, actions) {
          return actions.subscription.create({
           'plan_id': 'YOUR_PLAN_ID' // Crea la suscripción
           });
         },
         onApprove: function(data, actions) {
           alert('Te has suscrito exitosamente a ' + data.subscriptionID); // Mensaje opcional para el suscriptor
         }
       }).render('#paypal-button-container'); // Renderiza el botón de PayPal
      </script>
  </body>
</html>
  1. Modifica el código de la siguiente manera:

    • Cambia YOUR_CLIENT_ID por tu ID de cliente.

    • Cambia YOUR_PLAN_ID por el ID del plan devuelto de la llamada a la API Crear Plan.

  2. Carga la página web para ver los botones de pago:

4

Probar flujo

Prueba una transacción para ver la suscripción creada en la cuenta del comerciante:

Probar la transacción como comprador

  1. Selecciona el botón de PayPal en la página.

  2. Usa la información de inicio de sesión personal sandbox del Panel de Desarrollador para iniciar sesión y simular que el comprador realiza una compra.

  3. En la ventana de Checkout, toma nota del monto de la compra en la esquina superior derecha. USD es la moneda predeterminada. Puedes personalizar el SDK de JavaScript añadiendo un código de moneda diferente.

    Disponibilidad: Las funciones onShippingChange, onShippingAddressChange y onShippingOptionsChange del SDK de JavaScript no son compatibles con Suscripciones.

  4. Selecciona la flecha junto al monto de la compra para ver los detalles de la suscripción:

  5. Selecciona la tarjeta de crédito de prueba como método de pago y selecciona Continuar.

  6. Selecciona Aceptar y Suscribirse para aceptar los términos de la suscripción.

Confirmar el movimiento de fondos desde la cuenta del comprador

  1. Usa la cuenta personal sandbox que usaste para completar la compra para iniciar sesión en https://www.sandbox.paypal.com/myaccount/autopay/connect/.

  2. Confirma que la suscripción aparece en la lista de pagos automáticos activos. Selecciona el pago automático activo para ver los detalles de la suscripción.

  3. Cierra sesión en la cuenta.

Confirmar el movimiento de fondos a la cuenta del comerciante

  1. Usa la información de la cuenta empresarial sandbox del Panel de Desarrollador para iniciar sesión en https://www.sandbox.paypal.com/billing/subscriptions.

  2. Confirma que la suscripción realizada por el comprador de prueba aparece en la pestaña Suscripciones. Selecciona la suscripción para ver los detalles de la suscripción.

  3. Cierra sesión en la cuenta.

Próximos pasos

Ver también

  • API REST de Productos de Catálogo y API REST de Suscripciones - Usa estas APIs para añadir acciones a tu integración, como actualizar la descripción del producto, editar el plan o la suscripción, desactivar el plan o la suscripción, y más.

  • Eventos de webhook de Suscripciones - Usa webhooks para manejar tareas activadas por acciones de suscripción.

Última actualización

¿Te fue útil?