Integración de IZIPAY en un Pago Pop-in
En el ejemplo anterior, vimos cómo integrar IZIPAY mediante la incrustación del formulario de pago directamente en tu página web. Ahora, exploraremos otra forma de integración utilizando un Pago Pop-in, que ofrece una experiencia de pago en una ventana emergente.
¿Qué es un Pago Pop-in?
Un Pago Pop-in es una modalidad de pago que aparece en una ventana emergente superpuesta a tu sitio web. Ofrece una experiencia de pago rápida y conveniente sin que los clientes abandonen tu página principal. Esta modalidad es útil cuando deseas mantener a los usuarios en tu sitio mientras completan el proceso de pago.
Ejemplo de Código
A continuación, se muestra un ejemplo de cómo podría ser la integración de IZIPAY en un Pago Pop-in en una página web:
250,
"currency" => "PEN",
"orderId" => uniqid("MyOrderId"),
"customer" => array(
"email" => "sample@example.com"
));
$response = $client->post("V4/Charge/CreatePayment", $store);
/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
/* an error occurs, I throw an exception */
display_error($response);
$error = $response['answer'];
throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] );
}
/* everything is fine, I extract the formToken */
$formToken = $response["answer"]["formToken"];
?>
< !DOCTYPE html>
< html>
< head>
< /head>
< body>
< /body>
< /html>
Respuesta de IZIPAY
Después de que un cliente complete una transacción, IZIPAY enviará una respuesta que puedes procesar en tu servidor. Aquí tienes un ejemplo de cómo manejar la respuesta:
checkHash()) {
//something wrong, probably a fraud ....
signature_error($formAnswer['kr-answer']['transactions'][0]['uuid'], $hashKey,
$client->getLastCalculatedHash(), $_POST['kr-hash']);
throw new Exception('invalid signature');
}
$rawAnswer = $client->getParsedFormAnswer();
$formAnswer = $rawAnswer['kr-answer'];
/* Retrieve the transaction id from the IPN data */
$transaction = $formAnswer['transactions'][0];
/* get some parameters from the answer */
$orderStatus = $formAnswer['orderStatus'];
$orderId = $formAnswer['orderDetails']['orderId'];
$transactionUuid = $transaction['uuid'];
echo json_encode($formAnswer);
?>