mercadopago.blade.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. @php
  2. require base_path('/vendor/autoload.php');
  3. MercadoPago\SDK::setAccessToken(config('mercadopago.access'));
  4. $preference = new MercadoPago\Preference();
  5. $payer = new MercadoPago\Payer();
  6. $payer->name = $first_name;
  7. $payer->email = $email;
  8. $payer->phone = array(
  9. "area_code" => "",
  10. "number" => $phone
  11. );
  12. // Crea un ítem en la preferencia
  13. $item = new MercadoPago\Item();
  14. $item->title = $billname;
  15. $item->quantity = 1;
  16. $item->unit_price = $amount;
  17. $preference->payer = $payer;
  18. $preference->items = array($item);
  19. $preference->back_urls = array(
  20. "success" => $success_url,
  21. "failure" => $fail_url,
  22. "pending" => $fail_url
  23. );
  24. $preference->save();
  25. @endphp
  26. <html>
  27. <head>
  28. <title>Mercadopago Payment</title>
  29. <meta name="viewport" content="width=device-width, initial-scale=1">
  30. <style>
  31. .loader {
  32. border: 16px solid #f3f3f3;
  33. border-radius: 50%;
  34. border-top: 16px solid #3498db;
  35. width: 120px;
  36. height: 120px;
  37. -webkit-animation: spin 2s linear infinite; /* Safari */
  38. animation: spin 2s linear infinite;
  39. margin: auto;
  40. }
  41. /* Safari */
  42. @-webkit-keyframes spin {
  43. 0% { -webkit-transform: rotate(0deg); }
  44. 100% { -webkit-transform: rotate(360deg); }
  45. }
  46. @keyframes spin {
  47. 0% { transform: rotate(0deg); }
  48. 100% { transform: rotate(360deg); }
  49. }
  50. </style>
  51. <script src="https://sdk.mercadopago.com/js/v2"></script>
  52. </head>
  53. <body>
  54. <div class="cho-container"style="display: none;"></div>
  55. <br>
  56. <br>
  57. <script>
  58. // Agrega credenciales de SDK
  59. const mp = new MercadoPago('{{ env("MERCADOPAGO_KEY") }}', {
  60. locale: "{{ env('MERCADOPAGO_CURRENCY') }}",
  61. advancedFraudPrevention:true,
  62. });
  63. // Inicializa el checkout
  64. const checkout = mp.checkout({
  65. preference: {
  66. id: '{{ $preference->id }}',
  67. },
  68. autoOpen: true,
  69. render: {
  70. container: ".cho-container", // Indica el nombre de la clase donde se mostrará el botón de pago
  71. label: "Pagar", // Cambia el texto del botón de pago (opcional)
  72. },
  73. });
  74. </script>
  75. </body>
  76. </html>