92 lines
2.1 KiB
PHP
92 lines
2.1 KiB
PHP
@php
|
|
|
|
require base_path('/vendor/autoload.php');
|
|
|
|
MercadoPago\SDK::setAccessToken(config('mercadopago.access'));
|
|
|
|
$preference = new MercadoPago\Preference();
|
|
|
|
$payer = new MercadoPago\Payer();
|
|
$payer->name = $first_name;
|
|
$payer->email = $email;
|
|
$payer->phone = array(
|
|
"area_code" => "",
|
|
"number" => $phone
|
|
);
|
|
|
|
// Crea un ítem en la preferencia
|
|
|
|
$item = new MercadoPago\Item();
|
|
$item->title = $billname;
|
|
$item->quantity = 1;
|
|
$item->unit_price = $amount;
|
|
$preference->payer = $payer;
|
|
$preference->items = array($item);
|
|
|
|
$preference->back_urls = array(
|
|
"success" => $success_url,
|
|
"failure" => $fail_url,
|
|
"pending" => $fail_url
|
|
);
|
|
|
|
$preference->save();
|
|
|
|
@endphp
|
|
|
|
<html>
|
|
<head>
|
|
<title>Mercadopago Payment</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<style>
|
|
.loader {
|
|
border: 16px solid #f3f3f3;
|
|
border-radius: 50%;
|
|
border-top: 16px solid #3498db;
|
|
width: 120px;
|
|
height: 120px;
|
|
-webkit-animation: spin 2s linear infinite; /* Safari */
|
|
animation: spin 2s linear infinite;
|
|
margin: auto;
|
|
}
|
|
|
|
/* Safari */
|
|
@-webkit-keyframes spin {
|
|
0% { -webkit-transform: rotate(0deg); }
|
|
100% { -webkit-transform: rotate(360deg); }
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|
|
</style>
|
|
<script src="https://sdk.mercadopago.com/js/v2"></script>
|
|
</head>
|
|
<body>
|
|
<div class="cho-container"style="display: none;"></div>
|
|
<br>
|
|
<br>
|
|
<script>
|
|
// Agrega credenciales de SDK
|
|
const mp = new MercadoPago('{{ env("MERCADOPAGO_KEY") }}', {
|
|
locale: "{{ env('MERCADOPAGO_CURRENCY') }}",
|
|
advancedFraudPrevention:true,
|
|
});
|
|
|
|
// Inicializa el checkout
|
|
const checkout = mp.checkout({
|
|
|
|
preference: {
|
|
id: '{{ $preference->id }}',
|
|
},
|
|
autoOpen: true,
|
|
render: {
|
|
container: ".cho-container", // Indica el nombre de la clase donde se mostrará el botón de pago
|
|
label: "Pagar", // Cambia el texto del botón de pago (opcional)
|
|
},
|
|
});
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|