Acepta pagos en línea con las API de Square en tan solo tres pasos
Paso 1
Crea una nueva aplicación de la API de Square.
Las llamadas a la API de Square se autentican a través de identificadores de aplicación y tokens de autorización (ya sea un token de acceso personal o un token OAuth).
Para crear una nueva aplicación, inicia sesión en el Panel de control de aplicaciones con tu cuenta de Square.
A continuación, haz clic en + Nueva aplicación y ponle un nombre.
Fíjate en el identificador de la aplicación, el identificador del punto de venta y el token de acceso personal asignados a la aplicación.
Paso 2
Añade el SDK de pagos web de Square a tu flujo de pago
Square ofrece un formulario de pago de muestra en la página de documentación de Square para desarrolladores. En él, se usa el SDK para pagos web para solicitar un token de tarjeta válido desde los servidores de Square e incluirlo en los datos del formulario antes de enviarlo a tu página de procesamiento de pagos. Para usar el formulario de ejemplo, pon los identificadores generados en el paso anterior en appId
y locId
:
const appId = '{{ SET THE APPLICATION ID HERE}}';
const locId = '{{ SET THE LOCATION ID HERE}}';
El formulario de muestra solo incluye los campos necesarios para crear un nonce de tarjeta válido (número de tarjeta, código CVV, fecha de vencimiento). Si quieres recopilar otra información de pago, como el importe o la moneda, tendrás que añadir otros elementos al formulario y aplicar los estilos pertinentes para que el aspecto del formulario coincida con el de tu página. Por ejemplo:
Paso 3
Usa la API de Square para hacer el cargo en la tarjeta
Por último, debes añadir el código a tu página de procesamiento de pagos donde se inicializa el cliente de la API de Square.
use Square\Models\Currency; use Square\SquareClient; use Square\Environment; // Replace 'XXXXXXXXXX' with an OAuth or your Personal Access Token const SQUARE_ACCESS_TOKEN = 'XXXXXXXXXX'; $client = new SquareClient([ 'accessToken' => SQUARE_ACCESS_TOKEN, 'environment' => Environment::SANDBOX, ]);
Agrupa la información de pago como CreatePaymentRequest
(incluido el token de la tarjeta que has obtenido a través del formulario de pago en el paso anterior):
// Package the charge amount and currency as a Money object $sourceId = $_POST[token]; $idempotencyKey = uniqid(); $amountMoney = new Money; $amountMoney->setAmount($_POST['amount']); $amountMoney->setCurrency(Currency::USD); $paymentRequest = new CreatePaymentRequest( $sourceId, $idempotencyKey, $amountMoney );
Después, llama al punto final de la API de pagos createPayment
en /v2/payments para procesar la tarjeta:
// Create a PaymentsApi client to charge the card using our form info $paymentsApi = $client->getPaymentsApi(); // Call the PaymentsApi to create a payment using that card try { $result = $paymentsApi->createPayment($paymentRequest); } catch (Exception $e) { // Handle the exception }
El punto final «createPayment» envía el cargo a la tarjeta asociada al token y devuelve una respuesta indicando si se ha hecho correctamente o se ha rechazado. Puedes consultar los pagos aceptados en el Panel de control de ventas de tu cuenta de Square.