La clase RemesitaAPI
proporciona una interfaz fácil de usar para interactuar con el servicio de Remesita. Esta clase cubre varias funcionalidades, incluyendo autenticación, obtención de negocios, transferencias entre cuentas, y más.
Asegúrate de tener instalado PHP y Composer en tu proyecto. Luego, puedes incluir la clase ApiClient
en tu proyecto.
Para comenzar, necesitas inicializar la clase con tu apiKey
y apiSecret
:
use Remesita\ApiClient;
$apiKey = "TU_API_KEY";
$apiSecret = "ApiClient";
$remesita = new ApiClient($apiKey, $apiSecret);
La autenticación se maneja automáticamente dentro de la clase. Sin embargo, si deseas autenticarte manualmente, puedes hacerlo y ademas de obtener el token puedes obtener datos de usuario:
$response = $remesita->authenticate();
$token = $response->accessToken;
$user = $response->user;
Para obtener una lista de negocios:
/**
* @var Remesita\DTO\Business[] $businesses
*/
$businesses = $remesita->getBusinesses();
Para realizar una transferencia entre cuentas:
/**
* @var Remesita\DTO\TransferBetweenResponse $response
*/
$response = $remesita->transferBetweenAccounts("tarjta_origen", "tarjeta_destino", 100.50, "Transferencia de prueba");
Para bloquear o desbloquear una tarjeta:
$response = $remesita->toggleCardStatus("NUMERO_DE_TARJETA");
/**
* @var Remesita\DTO\Business $b
*/
foreach($remesita->getBusinesses() as $b){
echo $b->id;
echo $b->name;
echo $b->logo;
echo $b->description;
echo $b->domain;
}
Generar y usar un link de pagos involucrá:
- Inicialización de la API con apiKey y apiSecret.
- Autenticación y obtención del token.
- Creación del link de pagos usando el id de un Negocio registrado bajo tu cuenta.
- Proceso de pago por parte del usuario.
- Posibles razones de fallo y redirecciones a las URLs successUrl y cancelUrl.
- Proceso de IPN y cómo el servidor procesa las notificaciones.
Este diagrama ahora refleja la inicialización de la API, la autenticación, la creación del link de pagos, el proceso de pago por parte del usuario, las posibles razones de fallo y las redirecciones a las URLs successUrl y cancelUrl. También se incluye el proceso de IPN y cómo el servidor procesa las notificaciones.
$myBusinessUnitId="a365366c-261f-11ed-9ef1-024206050103";
$concept= "Toma chocolate paga lo que debes";
$amount=101.99;
$myExternalOrderCartId="MYID123"; //optional
$payerName="YESAPIN GARCIA"; //optional
$payerPhone="+17863052277"; //optional
$payerEmail="[email protected]"; //optional
$successUrl="https://miweb.com/checkout/success";
$cancelUrl="https://miweb.com/checkout/canceled";
$ipnUrl="https://miweb.com/ipn?id=$myExternalOrderCartId";
/**
* @var Remesita\DTO\PaymentLinkResponse $pl
*/
$pl=$remesita->createPaymentLink(
$myBusinessUnitId,
$amount,
$concept,
$myExternalOrderCartId, //optional
$ipnUrl, //optional
$successUrl, //optional
$cancelUrl, //optional
$payerName, //optional
$payerPhone, //optional
$payerEmail //optional
);
echo $pl->link;
{
"app_id": "el business id",
"status": "payed", #payed|completed|canceled|payment_review
"payed_at": "2023-08-26 13:33:22",
"liquid_at": "2023-08-26 17:34:56",
"canceled_at": null,
"cancel_reason": "",
"custom_id": "MYID123",
"concept": "Toma chocolate paga lo que debes",
"ref": "RM123456",
"paymentMethod": "PREPAIDCARDBALANCE",
"amount": 101.99,
"recipient_account": "TU TARJETA MAIN",
"customer": {
"code": "CODIGO DE CIENTE EN REMESITA",
"name": "Yesapin Garcia",
"phone": "+1786XXXXXXXX",
"email": "[email protected]",
"sex": "FEMALE",
"iso": "US",
"risk": 30,
"profile_picture": "https://remesita.s3.amazonaws.com/uploads/profile-photo.jpeg",
"kyc_verified": true
}
}
/**
* @var Remesita\DTO\Card $c
*/
foreach($remesita->getCards() as $c){
echo $b->number;
echo $b->balance;
}
$from = new \DateTime("now - 30 days");
$to = new \DateTime("now");
$pg=1;
$pgSize=25;
$paggination=$remesita->getCardTransactions(
$cardNumber,
$from,
$to,
$pg,
$pgSize
);
echo $paggination->total;
echo $paggination->pg;
echo $paggination->pgSize;
if($paggination->allowNext) {
}
/**
* $paggination implementa la interfaz \Iterator
* @var Remesita\DTO\CardTransaction $c
*/
foreach($paggination as $t){
echo $t->amount;
echo $t->type; //DBT or CRD
echo $t->currency;
echo $t->date;
echo $t->memo;
echo $t->exchangeRate; //rate to USD
}
$from = new \DateTime("now - 30 days");
$to = new \DateTime("now");
$pg=1;
$pgSize=25;
$paggination=$remesita->getOrders(
$from,
$to,
$pg,
$pgSize
);
/**
* $paggination implementa la interfaz \Iterator
* @var Remesita\DTO\Order $o
*/
foreach($paggination as $o){
echo $o->reference;
echo $o->sku;
echo $o->recipientAmount;
}
Para ejecutar las pruebas, simplemente usa el comando:
phpunit ApiClientTest.php
Las contribuciones son bienvenidas. Por favor, abre un issue si encuentras un bug o si tienes alguna sugerencia de mejora.
Este proyecto está bajo la licencia MIT.