Fecha de publicación: 03/11/2014
Habilitar la pasarela de pagos en PayPal en codeigniter hoy en día es muy sencillo. Para nuestro propósito utilizaremos la librería CI-Merchant. Desde esta página explica muy bien los requisitos necesarios para el funcionamiento y los pasos a realizar para su implementación. El problema es que no está del todo mascado (tuve problemas en su día), con lo que os voy a facilitar una serie de pasos mediante los cuales podréis realizar la implementación sin ningún tipo de problema.
Lo primero de todo será descargar la librería. Para ello nos vamos a la página CI-Merchant y lo descargamos. (Para descargarlo sólo tenéis que entrar en la página y pulsar el botón Download ZIP)
En el fichero que nos hemos descargado veréis una carpeta llamada libraries. Pues bien, tenemos que copiar el contenido que hay dentro de esta carpeta a nuestra carpeta libraries (application/libraries)
Creamos un nuevo fichero en la carpeta libraries que le llamamos lgeneral e introducimos los parámetros de PayPal de nuestra cuenta.
application/libraries/lgeneral.php
<?php if (!defined('BASEPATH')) exit('No permitir el acceso directo al script');
class Lgeneral{
private $paypal_settings = array(
'username' => 'cuentapaypal.es',
'password' => 'XXXXXXXXXXXXXXX',
'signature' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'test_mode' => true);
public function paypal_settings() {
return $this->paypal_settings;
}
}
?>
Estos parámetros obviamente los obtendremos de nuestra cuenta de PayPal ya sea la cuenta que estemos utilizando para pruebas como la cuenta real.
Si no sabéis de donde obtener estos parámetros seguid este procedimiento:
Bien, ahora tenemos que crear una función en nuestro controlador desde la cual iniciaremos la compra. Llamaremos a esta función comprar.
A esta función la acompañaremos con otra que será la que tenga los datos de la compra y la llamaremos paypal_params.
application/controllers/nombre_de_tu_controlador.php
public function comprar() {
$this->load->library('merchant');
$this->load->library('lgeneral');
$this->merchant->load('paypal_express');
$settings = $this->merchant->default_settings();
$settings = $this->lgeneral->paypal_settings();
$this->merchant->initialize($settings);
$params = $this->paypal_params();
$response = $this->merchant->purchase($params);
}
private function paypal_params() {
$this->load->helper('url');
$params = array(
'amount' => 10.54, //El importe total de la compra
'currency' => 'EUR',
'return_url' => site_url() . ' nombre_de_tu_controlador /correcto', //Si la compra es un éxito nos derivará a esta página
'description' => 'Compra de artículos de prueba', //La descripción del producto
'cancel_url' => site_url() . 'nombre_de_tu_controlador /incorrecto'); //Si la compra falla nos derivará a esta página
}
Los datos que debemos introducir son los que se encuentran en color naranja en la función paypal_params:
Amount: el importe total de la compra
Description: La descripción del producto
Return_url: La página donde nos derivará si el proceso de pago es correcto
Cancel_url: La página donde nos derivará si el proceso de paga falla o se cancela
Como hemos expuesto en el punto anterior, una vez que el proceso de compra haya resultado correcto PayPal nos remitirá a la return_url que le hayamos indicado. En nuestro caso le hemos dicho que nos remita a la función correcto. Esta función es donde se genera el pedido y se finaliza la compra.
application/controllers/nombre_de_tu_controlador.php
public function correcto() {
$this->load->library('merchant');
$this->load->library('lgeneral');
$this->merchant->load('paypal_express');
$settings = $this->lgeneral->paypal_settings();
$this->merchant->initialize($settings);
$params = $this->paypal_params();
$response = $this->merchant->purchase_return($params);
if ($response->success()) {
$paypal = $response->reference();
//Aquí generaremos el pedido
} else {
$this->incorrecto();
}
}
A tener en cuenta que la variable paypal nos devolverá el código que ha asignado Paypal a la compra. Es preferible grabar este código con el pedido que generemos , obviamente.
Por último tenemos que hacer una función por si falla o se cancela el proceso de compra. A esta función le llamaremos incorrecto y allí pondréis el mensaje que creáis conveniente.
application/controllers/nombre_de_tu_controlador.php
public function incorrecto(){
echo "Lo sentimos mucho, el proceso de compra ha fallado";
}
Rony
26/07/2021 - 08:28:59
Rony
26/07/2021 - 08:28:58
Sergio
06/06/2016 - 20:33:46
David
16/10/2015 - 10:17:59