Una guía para la integración de PayPal en su sitio web en PHP
PayPal es sin duda una de las pasarelas de pago más populares para sitios web. La mayoría de los sitios web utilizan PayPal para recibir pagos en su aplicación. En este artículo, estudiamos sobre la integración de PayPal en una aplicación web en PHP.
¿Por qué elegir PayPal?
Crear una cuenta en PayPal es totalmente gratis. No necesita pagar nada por adelantado. PayPal le cobrará por transacción.
Al realizar transacciones de pago, PayPal utiliza el cifrado Secure Socket Layers (SSL). Esto protege los datos personales y confidenciales de su cliente. Debido a esto, sus clientes se sienten seguros al realizar el pago a través de su aplicación web.
PayPal también permite pagar a través del saldo de PayPal, tarjetas de crédito o débito. Agrega una serie de opciones para que un cliente pague por su servicio.
Para aceptar pagos mediante tarjetas de crédito, también puede utilizar el servicio Authorize.net. Si desea obtener más información sobre Authorize.net, siga nuestro tutorial Acepte el pago con tarjeta de crédito utilizando la pasarela de pago Authorize.net en PHP.
Integración de PayPal
Ya que estamos hablando de un sitio web con PHP, usaremos la biblioteca oficial GiHub de PayPal. Esta biblioteca es para aplicaciones PHP.
Recomendamos utilizar Composer para la instalación de la biblioteca.
Entonces, para integrar PayPal en el sitio web, primero ejecute el siguiente comando en el directorio raíz del proyecto.
composer require "paypal/rest-api-sdk-php:*"
Obtener la identificación del cliente y el secreto del cliente
Cuando el cliente paga a través de PayPal, la cantidad debe depositarse en su cuenta de PayPal. Para hacerlo, necesitamos obtener su identificación de cliente y su secreto de cliente. Puede crear sus credenciales desde aquí.
En esta página Mis aplicaciones y credenciales, desplácese hacia abajo hasta la sección ‘Aplicaciones de API de descanso’ y haga clic en el botón ‘Crear aplicación’.
Dé el nombre a su aplicación y presione el botón ‘Crear aplicación’.
Después de los pasos anteriores, obtendrá las credenciales para los modos Sandbox y Live.
Ahora estamos listos con nuestra identificación de cliente y claves secretas de cliente. Demos un paso adelante y escribamos un fragmento de código.
Código real para la integración de PayPal
En esta etapa, estamos listos con la biblioteca y las credenciales. Ahora para integrar PayPal en el sitio web, creamos 4 archivos:
checkout.php
: En este archivo, tenemos un formulario que contiene el nombre y la cantidad del artículo.
payment.php
: Este es el archivo donde escribimos todo el código relacionado con PayPal.
success.php
: Después del pago exitoso, el cliente lo redireccionará a este archivo.
error.php
: Si el pago no se realiza correctamente, el cliente lo redireccionará a este archivo.
checkout.php
<form action="payment.php" method="post">
<input type="text" name="item" placeholder="Enter Item Name">
<input type="text" name="amount" placeholder="Enter Amount">
<input type="submit" name="submit" value="Pay">
</form>
pago.php
<?php
require_once 'vendor/autoload.php';
use PayPalApiItem;
use PayPalApiItemList;
$apiContext = new PayPalRestApiContext(
new PayPalAuthOAuthTokenCredential(
'YOUR_CLIENT_ID', // ClientID
'YOUR_CLIENT_SECRET' // ClientSecret
)
);
$apiContext->setConfig(
array(
'log.LogEnabled' => true,
'log.FileName' => 'PayPal.log',
'log.LogLevel' => 'DEBUG',
'mode' => 'sandbox', //'live' or 'sandbox'
)
);
$payer = new PayPalApiPayer();
$payer->setPaymentMethod('paypal');
$item1 = new Item();
$item1->setName($_POST['item'])
->setCurrency('USD')
->setQuantity(1)
->setPrice($_POST['amount']);
$itemList = new ItemList();
$itemList->setItems(array($item1));
$amount = new PayPalApiAmount();
$amount->setTotal($_POST['amount']);
$amount->setCurrency('USD');
$transaction = new PayPalApiTransaction();
$transaction->setDescription("Payment For Service")
->setItemList($itemList)
->setAmount($amount);
$redirectUrls = new PayPalApiRedirectUrls();
$redirectUrls->setReturnUrl("YOUR_HTTP_PATH/success.php")
->setCancelUrl("YOUR_HTTP_PATH/error.php");
$payment = new PayPalApiPayment();
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions(array($transaction))
->setRedirectUrls($redirectUrls);
// 4. Make a Create Call
try {
$payment->create($apiContext);
header('Location: '. $payment->getApprovalLink());
}
catch (PayPalExceptionPayPalConnectionException $ex) {
// This will print the detailed information on the exception.
//REALLY HELPFUL FOR DEBUGGING
echo $ex->getData();
}
?>
Asegúrese de reemplazar los marcadores de posición con los valores reales. En el código anterior, establecemos el valor de ‘modo’ en ‘caja de arena’. Mientras pasa a producción, establezca este valor como "en vivo" y agregue su identificación de cliente en vivo y su secreto de cliente.
Una vez que su proceso de pago se haya completado a través de PayPal, sobre la base de un pago exitoso o fallido, se redirigirá al archivo success.php o error.php.
success.php
<h2>Payment Successful.</h2>
error.php
<h2>Something went wrong. Try again later.</h2>
Esperamos que comprenda la integración de PayPal en la aplicación web. Comparta sus pensamientos en la sección de comentarios a continuación.