Capture Checkout Response
Automatically receive in your SDK JS all the data related to a payment made in your checkout landing.
For more details, check the Checkout API.
Example:
<?php
include('setting.inc.php');
/*
Capturar un Checkout desde un request del Client SDK JS (https://support.rebill.to/es/articles/6062873-como-utilizar-sdk-v2)
El resultado de un checkout sera del tipo: \Rebill\SDK\Models\Response\CheckoutResponse
Los atributos están definidos en https://docs.rebill.to/reference/checkoutcontroller_docheckout
*/
$json = file_get_contents('php://input');
file_put_contents('checkout.log', '---------- '.date('c')." -------------- \n\nPOST: $json \n\n", FILE_APPEND | LOCK_EX);
$data = json_decode($json, true);
$checkout = (new \Rebill\SDK\Models\Response\CheckoutResponse)->setAttributes($data);
/*
Dependiendo del tipo de respuesta se obtiene el status del pago.
Cada pago generado se retornara en un arreglo de paidBags definidos
en el objeto Rebill\SDK\Models\Shared\PaidBag
*/
if (isset($checkout->invoice) && !empty($checkout->invoice->id)) {
echo "Payment OK:\n";
var_dump($checkout->invoice->paidBags);
foreach($checkout->invoice->paidBags as $paid) {
$payment = \Rebill\SDK\Models\Payment::get($paid->payment->id);
if (empty($payment->id)) {
die('Phishing?...');
}
// Procesar pago...
// Recomendamos verificar si el $payment->id no fue procesado anteriormente y sea
// un pago realmente nuevo.
}
}
if (isset($checkout->pendingTransaction) && !empty($checkout->pendingTransaction->id)) {
echo "Payment Pending:\n";
var_dump($checkout->pendingTransaction->paidBags);
foreach($checkout->pendingTransaction->paidBags as $paid) {
$payment = \Rebill\SDK\Models\Payment::get($paid->payment->id);
if (empty($payment->id)) {
die('Phishing?...');
}
// Procesar pago...
// Recomendamos verificar si el $payment->id no fue procesado anteriormente y sea
// un pago realmente nuevo.
}
}
if (isset($checkout->failedTransaction) && !empty($checkout->failedTransaction->id)) {
echo "Payment Error:\n";
foreach($checkout->failedTransaction->paidBags as $paid) {
echo $paid->payment->status.': '.$paid->payment->errorMessage."\n";
}
}
Updated 8 months ago