2017 © Pedro Peláez
 

library khipu

Composer package for Tifon's Khipu Library (https://github.com/khipu/lib-php) modified for personal use all rights for them

image

blenderdeluxe/khipu

Composer package for Tifon's Khipu Library (https://github.com/khipu/lib-php) modified for personal use all rights for them

  • Saturday, August 6, 2016
  • by blenderdeluxe
  • Repository
  • 1 Watchers
  • 0 Stars
  • 75 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 4 % Grown

The README.md

Khipu

I modified this library for personal use added option for use input ype image with default Phipu button or custom url or input type submit with custom value, added class option on render form for Page create, (*1)

Versión Biblioteca: 1.3, (*2)

Versión API Khipu: 1.3, (*3)

Biblioteca PHP para utilizar los servicios de Khipu.com, (*4)

La documentación de Khipu.com se puede ver desde aquí: https://khipu.com/page/api, (*5)

Instalación: composer

composer require blenderdeluxe/khipu, (*6)

Introducción

La API de Khipu cuenta con varios servicios, los cuales son:, (*7)

  • Ver estado de la cuenta Khipu
  • Crear un botón de pago
  • Crear un cobro por Mail
  • Crear URL para un pago
  • Expirar un cobro
  • Consultar estado de un pago
  • Marcar un pago como pagado
  • Marcar un pago como rechazado
  • Actualizar versión de la notificación
  • Obtener listado de bancos

Para utilizar estos servicios se debe cargar el archivo Khipu.php, (*8)

Algunos Ejemplos

1) Crear Cobros y enviarlos por Mail

Para crear cobros, necesitamos identificar al cobrador y a los destinatarios. A continuación un ejemplo, (*9)

authenticate($receiver_id, $llave);

  // Luego cargamos el servicio.
  $khipu_service = $khipu->loadService('CreateEmail');

  // Preparamos los datos que queremos enviar
  $data = array(
    'subject' => 'Título del pago',
    'body' => 'Descripción del producto',
    'transaction_id' => '1',
    'pay_directly' => 'false',
    // Decimos que envie los correos.
    'send_emails' => 'true',
    // Si contamos con algun sitio, podemos redireccionar al usuario
    // a esta URL una vez que pague.
    'return_url' => '',
    // Le damos un tiempo de expiración.
    'expires_date' => time() + 30 * 10,
    // Opcionalmente podemos asignar una URL de una imagen.
    'picture_url' => '',
  );
  // Recorremos los datos y se lo asignamos al servicio
  foreach($data as $name => $value) {
    $khipu_service->setParameter($name, $value);
  }
  /**
   * En reemplazo de setParameter se podría usar
   * $this->setParameters($data);
   */
  // Agregamos un destinatario con un monto
  $khipu_service->addRecipient('Cliente', 'cliente@gmai.com', 25000);

  // Lo enviamos
  $json = $khipu_service->send();

```

### 2) Crear Página de Pago

Crear una página de pago también se requiere identificarse, a continuación un
ejemplo:

```php
authenticate($receiver_id, $llave);
  $khipu_service = $Khipu->loadService('CreatePaymentPage');

  $data = array(
    'subject' => 'Título del pago',
    'body' => 'Descripción del producto',
    'amount' => 10000,
    // Página de exito
    'return_url' => $return_url,
    // Página de fracaso
    'cancel_url' => $cancel_url,
    'transaction_id' => 1,
    // Dejar por defecto un correo para recibir el comprobante
    'payer_email' => 'cliente@gmail.com',
    // url de la imagen del producto o servicio
    'picture_url' => $picture_url,
    // Opcional
    'custom' => 'Custom Variable',
    // definimos una url en donde se notificará del pago
    'notify_url' => $notify_url,
  );
  // Recorremos los datos y se lo asignamos al servicio.
  foreach ($data as $name => $value) {
    $khipu_service->setParameter($name, $value);
  }
  // Luego imprimimos el formulario html
  echo $khipu_service->renderForm();

```

### 3) Recibiendo y validando la notificación de un pago

Este servicio debe ser utilizado en la página que recibirá el POST desde
Khipu y no require identificar al cobrador.
A continuación un ejemplo:

```php
loadService('VerifyPaymentNotification');
    $khipu_service->setDataFromPost();
    $response = $khipu_service->verify();
    if($response['response'] == 'VERIFIED'){
        //el pago esta verificado, hacemos algo al respecto
    }

  } else if ($api_version == '1.3') {
    $Khipu->authenticate($receiver_id, $llave);
    $khipu_service = $Khipu->loadService('GetPaymentNotification');
    $khipu_service->setDataFromPost();
    $response = json_decode($khipu_service->consult());
    
    // validamos que la notificacion de pago corresponda con una solicitud de pago esperada
    if($response->transaction_id == $mi_transaction_id &&  $response->receiver_id == $receiver_id, $response->amount == $mi_amount) {
        // la notificacion esta ok, la estaba esperando y debo procesar el pedido
    } else {
        // la notificacion no es para mi o no la estaba esperando, la ignoro
    }
    

  } else {
    // api de notificacion no soportada
  }


```

### 4) Verificar Estado de una cuenta Khipu

Este servicio permite consultar el estado de una cuenta khipu, la cual retorna
un json mencionando el ambiente en que se encuentra y si puede recibir pagos.
A continuación un ejemplo:

```php
authenticate($receiver_id, $llave);
  $khipu_service = $Khipu->loadService('ReceiverStatus');

  // Aquí se hace la consulta a khipu sobre la cuenta.
  $json = $khipu_service->consult();

```

En la carpeta examples existen otros ejemplos.

## Extra

La clase Khipu cuenta con dos funciones estáticas, las cuales son:

### getUrlService()
```php

Esta función recibe el nombre del servicio y retorna la URL de Khipu que corresponde., (*10)

getButtonsKhipu()


Esta función retorna la lista de links de los botones de Khipu.com, la pueden ver aquí: https://khipu.com/page/botones-de-pago, (*11)

Testing

phpunit src/KhipuTest.php, (*12)

The Versions

06/08 2016

dev-master

9999999-dev

Composer package for Tifon's Khipu Library (https://github.com/khipu/lib-php) modified for personal use all rights for them

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

by Diego Cortes

06/08 2016

1.0.1

1.0.1.0

Composer package for Tifon's Khipu Library (https://github.com/khipu/lib-php) modified for personal use all rights for them

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

by Diego Cortes

06/08 2016

1.0.0

1.0.0.0

Composer package for Tifon's Khipu Library (https://github.com/khipu/lib-php) modified for personal use all rights for them

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

by Diego Cortes