1. Go to this page and download the library: Download watts25/naranja-payment-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
watts25 / naranja-payment-sdk example snippets
// Importamos el SDK y las clases
hp');
// Instanciamos la clase NaranjaCheckout
// Utilizamos el CLIENT_ID y CLIENT_SECRET provistos por Naranja
// En 'ENVIRONMENT', para las pruebas usamos 'sandbox' y para nuestro entorno productivo 'production'
// Tener en cuenta que el CLIENT_ID y el CLIENT_SECRET son distintos para sandbox y para producción
$naranjaCheckout = new NaranjaCheckout('CLIENT_ID','CLIENT_SECRET','ENVIROMENT');
// Definimos el primer producto
$product1 = new Naranja\CheckoutApi\Model\ProductItem();
$product1->setName('Veggies');
$product1->setDescription('Granja del sol');
$product1->setQuantity(2);
// Definimos unit_price
$unitPrice1 = new Naranja\CheckoutApi\Model\Amount();
$unitPrice1->setCurrency('ARS');
$unitPrice1->setValue('115');
// Agregamos el unitPrice al producto
$product1-> setUnitPrice($unitPrice1);
// Definimos el segundo producto
$product2 = new Naranja\CheckoutApi\Model\ProductItem();
$product2->setName('Croquetas');
$product2->setDescription('Granja del sol');
$product2->setQuantity(1);
// Definimos el unit price del segundo producto
$unitPrice2 = new Naranja\CheckoutApi\Model\Amount();
$unitPrice2->setCurrency('ARS');
$unitPrice2->setValue('115');
// Agregamos el unitPrice al producto
$product2->setUnitPrice($unitPrice2);
// Definimos el objeto transaccion
$transaction = new Naranja\CheckoutApi\Model\Transaction();
// Definimos el Amount
$amountTransaction = new Naranja\CheckoutApi\Model\Amount();
$amountTransaction->setCurrency('ARS');
$amountTransaction->setValue('345');
// Agregamos el objeto amount a la transaccion
$transaction->setAmount($amountTransaction);
$transaction->setSoftDescriptor('GOFRIZ CONGELADOS');
$transaction->setProducts([$product1, $product2]);
// Generamos el payment request
$paymentRequest = new Naranja\CheckoutApi\Model\PaymentRequest();
$paymentRequest->setPaymentType('web_checkout');
$paymentRequest->setAuthorizationMode('SALE');
$paymentRequest->setExternalPaymentId('123456789');
$paymentRequest->setTransactions([$transaction]);
// Definimos el Requests creation redirect
$requestsCreationRedirect = new Naranja\CheckoutApi\Model\RequestCreationRedirect();
$requestsCreationRedirect->setSuccessUrl('https://gofriz.com.ar/success');
$requestsCreationRedirect->setFailureUrl('https://gofriz.com.ar/failure');
// Agregamos el requests redirect al paymenRequests
$paymentRequest->setRequestCreationRedirect($requestsCreationRedirect);
$paymentRequest->setCallbackUrl('https://gofriz.com.ar/notification');
// Ejecutamos el metodo
$response = $naranjaCheckout->createPaymentRequest($paymentRequest);
// Transformamos el JSON a datos nativo de PHP
$response = json_decode($response, true);
print_r($response['checkout_url'] . PHP_EOL);
// Importamos el SDK y las clases
);
// Instanciamos la clase de NaranjaCheckout
$naranjaCheckout = new NaranjaCheckout('CLIENT_ID','CLIENT_SECRET','ENVIROMENT');
// Las notificaciones sobre el pago llegan via POST
// Por lo tanto solo nos preocupamos por ese verbo http
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// El id del pago llega via request body
$body = json_decode(file_get_contents('php://input'), true);
// Solicitamos los detalles del pago
$payment = $naranjaCheckout->getPayment($body['id']);
// Mostrar los detalles del pago
$payment = $payment->__toString();
print_r($payment);
}
class NaranjaCheckout(string $client_id, string $client_secret, string $environment);