{"id":27996,"date":"2021-05-18T10:16:00","date_gmt":"2021-05-18T07:16:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27996"},"modified":"2021-10-17T17:00:41","modified_gmt":"2021-10-17T14:00:41","slug":"integracion-de-authorize-net-payment-gateway-en-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/integracion-de-authorize-net-payment-gateway-en-laravel\/","title":{"rendered":"Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel"},"content":{"rendered":"<p><a href=\"https:\/\/www.authorize.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.Net<\/a> es sin duda una de las soluciones de pago populares y confiables en Internet. Si tiene una tienda en l\u00ednea y desea recibir pagos con tarjetas de cr\u00e9dito \/ d\u00e9bito, Authorize.Net ser\u00eda su elecci\u00f3n. En este art\u00edculo, le muestro c\u00f3mo integrar la pasarela de pago Authorize.Net en su aplicaci\u00f3n Laravel.<\/p>\n<p>Para comenzar, debe tener una cuenta en <a href=\"https:\/\/www.authorize.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.Net<\/a>. Primero debe probar sus pagos en modo sandbox y si todo funciona como se espera, vaya al modo en vivo. Para aceptar el pago mediante Authorize.Net, debe obtener sus credenciales de API. Inicie sesi\u00f3n en su <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cuenta de zona de pruebas<\/a> y puede obtener estas claves de API desde <strong>Cuenta-&gt; Credenciales y claves de API<\/strong>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b6e3c01.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b6e3c01.png\" alt=\"Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel\" ><\/a><\/p>\n<p>En la p\u00e1gina siguiente, obtendr\u00e1 su &#8216;ID de inicio de sesi\u00f3n de API&#8217; y crear\u00e1 una nueva clave de transacci\u00f3n en la secci\u00f3n &#8216;Crear nuevas claves&#8217;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" alt=\"Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel\" ><\/a><\/p>\n<h3>Configuraci\u00f3n b\u00e1sica en Laravel para aceptar pagos usando Authorize.Net<\/h3>\n<p>Cuando sus clientes compran productos, debe almacenar sus detalles de pago en la base de datos. Dicho esto, creemos una tabla de &#8216;pagos&#8217; para almacenar los detalles de la transacci\u00f3n.<\/p>\n<pre><code>php artisan make:migration create_payments_table<\/code><\/pre>\n<p>En el archivo de migraci\u00f3n generado, agregue el siguiente c\u00f3digo al m\u00e9todo up.<\/p>\n<pre><code>&lt;?php\n...\n...\npublic function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('payments', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;bigIncrements('id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('transaction_id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payer_email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;float('amount', 10, 2);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('currency');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payment_status');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>A continuaci\u00f3n, ejecute el comando migrate que agregar\u00e1 esta tabla a su base de datos.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Para interactuar con la tabla de &#8216;pagos&#8217;, necesitar\u00e1 tener un modelo de &#8216;Pago&#8217;. Cr\u00e9elo usando el comando:<\/p>\n<pre><code>php artisan make:model Payment<\/code><\/pre>\n<p>Ha copiado las credenciales de la API Authorize.Net. Pong\u00e1moslo en su <code>.env<\/code>archivo de la siguiente manera.<\/p>\n<pre><code>ANET_API_LOGIN_ID=PASTE_HERE_API_LOGIN_ID\nANET_TRANSACTION_KEY=PASTE_HERE_TRANSACTION_KEY<\/code><\/pre>\n<p>Aseg\u00farese de reemplazar los marcadores de posici\u00f3n con los valores reales. Despu\u00e9s de esto, borre su cach\u00e9 de configuraci\u00f3n.<\/p>\n<pre><code>php artisan config:clear<\/code><\/pre>\n<p>Mientras procesa el pago, en Laravel debe definir rutas. As\u00ed que definamos rutas para ello.<\/p>\n<p><strong>rutas \/ web.php<\/strong><\/p>\n<pre><code>&lt;?php\n...\n...\nRoute::get('payment', 'PaymentController@index');\nRoute::post('charge', 'PaymentController@charge');<\/code><\/pre>\n<h3>Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel<\/h3>\n<p>Atr\u00e1s quedaron los d\u00edas en que los desarrolladores necesitaban leer la documentaci\u00f3n de la API de los proveedores de pasarelas de pago para integrar sus servicios. <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay<\/a> es una biblioteca de procesamiento de pagos para PHP y hacen todo el trabajo duro para facilitar la vida de nuestros desarrolladores. Proporcionan soporte para servicios de pasarela de pago m\u00faltiple. Tambi\u00e9n usaremos Omnipay para la integraci\u00f3n de Authorize.Net en Laravel. Junto con Omnipay tambi\u00e9n usamos su otra biblioteca para la implementaci\u00f3n de Authorize.Net API.<\/p>\n<p>Habiendo dicho eso, instale estas 2 bibliotecas usando el comando Composer:<\/p>\n<pre><code>composer require league\/omnipay:^3 \"academe\/omnipay-authorizenetapi: ~3.0\"<\/code><\/pre>\n<p>Ahora, cree un controlador que llamar\u00e1 al archivo de vista, procesar\u00e1 el pago y almacenar\u00e1 los detalles de la transacci\u00f3n en la base de datos.<\/p>\n<pre><code>php artisan make:controller PaymentController<\/code><\/pre>\n<p>A este controlador, agregue el c\u00f3digo a continuaci\u00f3n tal como est\u00e1, que manejar\u00e1 todas las cosas relacionadas con el pago.<\/p>\n<p><strong>PaymentController.php<\/strong><\/p>\n<pre><code>&lt;?php\nnamespace AppHttpControllers;\n\u00a0\u00a0\nuse IlluminateHttpRequest;\nuse OmnipayOmnipay;\nuse AppPayment;\n\u00a0\nclass PaymentController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0public $gateway;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0public function __construct()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway = Omnipay::create('AuthorizeNetApi_Api');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;setAuthName(env('ANET_API_LOGIN_ID'));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;setTransactionKey(env('ANET_TRANSACTION_KEY'));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;setTestMode(true); \/\/comment this line when move to 'live'\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return view('payment');\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function charge(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$creditCard = new OmnipayCommonCreditCard([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'number' =&gt; $request-&gt;input('cc_number'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryMonth' =&gt; $request-&gt;input('expiry_month'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryYear' =&gt; $request-&gt;input('expiry_year'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'cvv' =&gt; $request-&gt;input('cvv'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Generate a unique merchant site transaction ID.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionId = rand(100000000, 999999999);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $this-&gt;gateway-&gt;authorize([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'amount' =&gt; $request-&gt;input('amount'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'currency' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'transactionId' =&gt; $transactionId,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'card' =&gt; $creditCard,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($response-&gt;isSuccessful()) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Captured from the authorization response.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionReference = $response-&gt;getTransactionReference();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $this-&gt;gateway-&gt;capture([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'amount' =&gt; $request-&gt;input('amount'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'currency' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'transactionReference' =&gt; $transactionReference,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transaction_id = $response-&gt;getTransactionReference();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$amount = $request-&gt;input('amount');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Insert transaction data into the database\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$isPaymentExist = Payment::where('transaction_id', $transaction_id)-&gt;first();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(!$isPaymentExist)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment = new Payment;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;transaction_id = $transaction_id;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payer_email = $request-&gt;input('email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;amount = $request-&gt;input('amount');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;currency = 'USD';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payment_status = 'Captured';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;save();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \"Payment is successful. Your transaction id is: \". $transaction_id;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ not successful\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $response-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Este controlador toma la cantidad, los detalles de la tarjeta del formulario HTML y procesa el pago. En el pago exitoso, almacena todos los detalles de la transacci\u00f3n en la tabla de &#8216;pagos&#8217;.<\/p>\n<p>Finalmente, cree una vista <code>payment.blade.php<\/code>y contendr\u00e1 el siguiente c\u00f3digo.<\/p>\n<p><strong>pago.blade.php<\/strong><\/p>\n<pre><code>&lt;form action=\"{{ url('charge') }}\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"email\" name=\"email\" placeholder=\"Enter Email\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"amount\" placeholder=\"Enter Amount\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"cc_number\" placeholder=\"Card Number\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"expiry_month\" placeholder=\"Month\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"expiry_year\" placeholder=\"Year\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"cvv\" placeholder=\"CVV\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Cuando env\u00eda este formulario, el control va a la <code>charge<\/code>funci\u00f3n en el <code>PaymentController<\/code>y el controlador hace el resto del proceso de pago. <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Haga clic aqu\u00ed<\/a> para obtener n\u00fameros falsos de tarjetas de cr\u00e9dito para probar el pago en la zona de pruebas. El usuario tambi\u00e9n puede ver su transacci\u00f3n en el panel de Authorize.Net. Al principio, las transacciones se enumeran como &#8216;Transacciones sin liquidar&#8217;. Authorize.Net luego liquida la transacci\u00f3n por su cuenta.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" alt=\"Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel\" ><\/a><\/p>\n<h3>Realizar el pago en vivo<\/h3>\n<p>Una vez que haya probado con \u00e9xito sus pagos en el modo sandbox, puede cambiar al modo de producci\u00f3n. Todo lo que necesita hacer es reemplazar las credenciales de la zona de pruebas con los detalles de producci\u00f3n en el <code>.env<\/code>archivo. Tambi\u00e9n comente la siguiente l\u00ednea del <code>__construct<\/code>m\u00e9todo de <code>PaymentController<\/code>.<\/p>\n<pre><code>$this-&gt;gateway-&gt;setTestMode(true); \/\/comment this line when move to 'live'<\/code><\/pre>\n<p>\u00a1Eso es todo! Espero que comprenda la integraci\u00f3n de Authorize.Net Payment Gateway en Laravel. Me gustar\u00eda escuchar sus pensamientos o sugerencias en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/integracion-de-la-pasarela-de-pago-de-paypal-en-laravel\/\" title=\"Integraci\u00f3n de la pasarela de pago de PayPal en Laravel\">Integraci\u00f3n de la pasarela de pago de PayPal en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/integracion-de-stripe-payment-gateway-en-laravel\/\" title=\"Integraci\u00f3n de Stripe Payment Gateway en Laravel\">Integraci\u00f3n de Stripe Payment Gateway en Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, le muestro c\u00f3mo integrar la pasarela de pago Authorize.Net en Laravel. Con esta pasarela, puede aceptar pagos con tarjetas de cr\u00e9dito \/ d\u00e9bito en<\/p>\n","protected":false},"author":1,"featured_media":20567,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[495],"tags":[849],"class_list":["post-27996","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27996"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27996\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20567"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}