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); ?>