# Paypal

# 1. Generar link de pago

El método devuelve un array de links. Para el link de pago se debe emplear el que tiene el atributo "rel" como "approve"

POST /pagos

REQUEST

  • provider: (Tipo de dato: string). Nombre del Servicio de Pagos ("paypal"). Campo obligatorio.

  • action: (Tipo de dato: string). Tipo de acción a ejecutar ("create"). Campo obligatorio.

  • currency: (Tipo de dato: string). Tipo de moneda. Valor para Gymco "MXN". Campo obligatorio.

  • amount: (Tipo de dato: string). Monto a cobrar, se puede expresar con punto y hasta 2 decimales (Ejemplo: 1200.59). Campo obligatorio.

  • reference_id: (Tipo de dato: string). Id de la orden. Campo obligatorio.

  • return_url: (Tipo de dato: string). Url al la cual se desea retornar después de aprobado el pago. Campo obligatorio.

{
    "provider": "paypal",
    "action": "create",
    "amount": "1200.00",
    "reference_id": "5432",
    "currency": "MXN",
    "return_url": "https://www.gymcosportwear.com/paypal/paypal_order",
    "secret": "EK1KiiHodr86A5a7SiEpXJspEQn2XTEAwmUJ30710PxU5croOhFb3qna7LRWfrHAIYPh2yWvmgxE89w6",
    "public_key": "AR4xUsXj5WrVnKLCXXnIpa5qJeZvN48yHJPHGXmSvtRuKoez3xHs_ZLeyUsAmvsktkDMRDUfptzzZluI"
}

RESPONSE

El método devuelve un array de links. Para el link de pago se debe emplear el que tiene el atributo "rel" como "approve".

{
    "id": "3KN52380MV227541H",
    "status": "CREATED",
    "links": [
        {
            "href": "https://api.paypal.com/v2/checkout/orders/3KN52380MV227541H",
            "rel": "self",
            "method": "GET"
        },
        {
            "href": "https://www.paypal.com/checkoutnow?token=3KN52380MV227541H",
            "rel": "approve",
            "method": "GET"
        },
        {
            "href": "https://api.paypal.com/v2/checkout/orders/3KN52380MV227541H",
            "rel": "update",
            "method": "PATCH"
        },
        {
            "href": "https://api.paypal.com/v2/checkout/orders/3KN52380MV227541H/capture",
            "rel": "capture",
            "method": "POST"
        }
    ]
}

# 2. Capturar pago

El método permite averiguar si un pedido de pago se procesó con éxito.

POST /pagos

REQUEST

  • provider: (Tipo de dato: string). Nombre del Servicio de Pagos ("paypal"). Campo obligatorio.

  • action: (Tipo de dato: string). Tipo de acción a ejecutar ("capture"). Campo obligatorio.

  • payment_id: (Tipo de dato: string). Id de pago que viene en la notificación de Paypal. Campo obligatorio.

{
    "provider": "paypal",
    "action": "capture",
    "payment_id": "5O190127TN364715T",
    "secret": "EK1KiiHodr86A5a7SiEpXJspEQn2XTEAwmUJ30710PxU5croOhFb3qna7LRWfrHAIYPh2yWvmgxE89w6",
    "public_key": "AR4xUsXj5WrVnKLCXXnIpa5qJeZvN48yHJPHGXmSvtRuKoez3xHs_ZLeyUsAmvsktkDMRDUfptzzZluI"
}

RESPONSE

El método devuelve el código de status de la respuesta.

# 3. Obtener detalles de pago

El método permite averiguar los detalles de un pago cuando Paypal notifica una transacción.

POST /pagos

REQUEST

  • provider: (Tipo de dato: string). Nombre del Servicio de Pagos ("paypal"). Campo obligatorio.

  • action: (Tipo de dato: string). Tipo de acción a ejecutar ("details"). Campo obligatorio.

  • payment_id: (Tipo de dato: string). Id de pago que viene en la notificación de Paypal. Campo obligatorio.

{
    "provider": "paypal",
    "action": "obtain_payment_info",
    "payment_id": "5O190127TN364715T",
    "secret": "EK1KiiHodr86A5a7SiEpXJspEQn2XTEAwmUJ30710PxU5croOhFb3qna7LRWfrHAIYPh2yWvmgxE89w6",
    "public_key": "AR4xUsXj5WrVnKLCXXnIpa5qJeZvN48yHJPHGXmSvtRuKoez3xHs_ZLeyUsAmvsktkDMRDUfptzzZluI"
}

RESPONSE

Devuelve la información del pago.

{
  "id": "5O190127TN364715T",
  "status": "APPROVED",
  "intent": "CAPTURE",
  "payment_source": {
    "paypal": {
      "name": {
        "given_name": "John",
        "surname": "Doe"
      },
      "email_address": "customer@example.com",
      "account_id": "QYR5Z8XDVJNXQ"
    }
  },
  "purchase_units": [
    {
      "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b",
      "amount": {
        "currency_code": "USD",
        "value": "100.00"
      }
    }
  ],
  "payer": {
    "name": {
      "given_name": "John",
      "surname": "Doe"
    },
    "email_address": "customer@example.com",
    "payer_id": "QYR5Z8XDVJNXQ"
  },
  "create_time": "2018-04-01T21:18:49Z",
  "links": [
  ]
}