{"id":27286,"date":"2021-05-06T17:01:00","date_gmt":"2021-05-06T14:01:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27286"},"modified":"2021-10-17T17:28:11","modified_gmt":"2021-10-17T14:28:11","slug":"como-configurar-pagos-recurrentes-en-authorize-net","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/como-configurar-pagos-recurrentes-en-authorize-net\/","title":{"rendered":"C\u00f3mo configurar pagos recurrentes en Authorize.net"},"content":{"rendered":"<p>Hemos escrito un art\u00edculo <a href=\"https:\/\/themewp.inform.click\/es\/acepte-el-pago-con-tarjeta-de-credito-utilizando-authorize-net-payment-gateway-en-php\/\" title=\"Aceptar pago con tarjeta de cr\u00e9dito mediante la pasarela de pago Authorize.net\">Aceptar pago con tarjeta de cr\u00e9dito mediante la pasarela de pago Authorize.net<\/a>. En ese art\u00edculo, discutimos c\u00f3mo se puede recibir un pago con tarjeta de cr\u00e9dito a trav\u00e9s de Authorize.net. Adem\u00e1s, ese art\u00edculo se centra b\u00e1sicamente en el pago \u00fanico.<\/p>\n<p>Pero, \u00bfqu\u00e9 pasa si alguien quiere integrar pagos recurrentes en su aplicaci\u00f3n? En este art\u00edculo, le mostramos c\u00f3mo configurar pagos recurrentes utilizando <a href=\"http:\/\/reseller.authorize.net\/application\/103001\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.net<\/a>.<\/p>\n<h3>\u00bfQu\u00e9 es el pago recurrente?<\/h3>\n<p>El pago recurrente o de suscripci\u00f3n significa cargar autom\u00e1ticamente a la tarjeta de cr\u00e9dito una cantidad fija despu\u00e9s de un intervalo espec\u00edfico y durante un per\u00edodo de tiempo espec\u00edfico.<\/p>\n<p>Por ejemplo, digamos que est\u00e1 ejecutando su sitio web en el alojamiento <a href=\"https:\/\/www.bluehost.com\/track\/artisansweb\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bluehost<\/a> y ha pagado una cantidad durante el primer a\u00f1o. Cuando su plan expire, Bluehost cargar\u00e1 autom\u00e1ticamente el pago de su tarjeta de cr\u00e9dito para el pr\u00f3ximo a\u00f1o (si ha elegido la opci\u00f3n de pago recurrente).<\/p>\n<p>El beneficio de permitir el plan de suscripci\u00f3n es que no necesita recordar la fecha de vencimiento del servicio que est\u00e1 utilizando. El proveedor de servicios lo mantiene como un sistema automatizado. Una vez que su plan expir\u00f3, renuevan su servicio tomando pagos de su tarjeta de cr\u00e9dito en segundo plano.<\/p>\n<p>Habiendo dicho eso, veamos c\u00f3mo configurar pagos recurrentes usando Authorize.net.<\/p>\n<p>Primero debe leer nuestro art\u00edculo <a href=\"https:\/\/themewp.inform.click\/es\/acepte-el-pago-con-tarjeta-de-credito-utilizando-authorize-net-payment-gateway-en-php\/\" title=\"Aceptar pago con tarjeta de cr\u00e9dito mediante la pasarela de pago Authorize.net\">Aceptar pago con tarjeta de cr\u00e9dito mediante la pasarela de pago Authorize.net<\/a>. En ese art\u00edculo, hablamos sobre la instalaci\u00f3n y configuraci\u00f3n de las <a href=\"https:\/\/github.com\/AuthorizeNet\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bibliotecas del SDK<\/a> de <a href=\"https:\/\/github.com\/AuthorizeNet\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.net<\/a>.<\/p>\n<p>Para nuestro tutorial, estamos usando la cuenta de sandbox. Por lo tanto, primero debe crear su <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cuenta de Sandbox<\/a> y obtener sus claves API. Puede encontrar sus claves de API en <strong>Cuenta-&gt; Credenciales y claves de API<\/strong>.<\/p>\n<h3>Instalaci\u00f3n<\/h3>\n<p>Para comenzar, necesitamos instalar <a href=\"https:\/\/github.com\/AuthorizeNet\/sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP SDK Library<\/a>. Recomendamos <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> para instalar la biblioteca.<\/p>\n<p>Cree un <code>composer.json<\/code>archivo en el directorio ra\u00edz de su proyecto y agregue el siguiente c\u00f3digo en \u00e9l.<\/p>\n<p><strong>composer.json<\/strong><\/p>\n<pre><code>{\n\u00a0\u00a0\u00a0\u00a0\"require\": {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"php\": \"&gt;=5.6\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"authorizenet\/authorizenet\": \"~1.9.6\"\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Abra la terminal en el directorio ra\u00edz de su proyecto y ejecute el <code>composer install<\/code>comando. Este comando descargar\u00e1 la dependencia de una biblioteca.<\/p>\n<h3>Configurar el entorno<\/h3>\n<p>Hemos instalado la biblioteca PHP SDK. Ahora cree dos archivos llamados <code>constants.php<\/code>y <code>subscriptionpayment.php<\/code>. En el archivo constants.php almacenamos nuestras claves API de la siguiente manera.<\/p>\n<p><strong>constants.php<\/strong><\/p>\n<pre><code>&lt;?php\ndefine('ANET_LOGIN_ID', 'YOUR_LOGIN_ID');\ndefine('ANET_TRANSACTION_KEY', 'YOUR_TRANSACTION_KEY');\n?&gt;<\/code><\/pre>\n<p>Aseg\u00farese de haber reemplazado los marcadores de posici\u00f3n YOUR_LOGIN_ID y YOUR_TRANSACTION_KEY con valores reales.<\/p>\n<p><code>subscriptionpayment.php<\/code>es el archivo donde escribiremos un c\u00f3digo para los pagos de suscripci\u00f3n de una tarjeta de cr\u00e9dito. Para hacerlo primero, necesitamos incluir archivos centrales de la biblioteca.<\/p>\n<p><strong>subscriptionpayment.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"constants.php\";\n\u00a0\nuse netauthorizeapicontractv1 as AnetAPI;\nuse netauthorizeapicontroller as AnetController;\n?&gt;<\/code><\/pre>\n<h3>C\u00f3digo real para pagos recurrentes en Authorize.net<\/h3>\n<p>Authorize.net proporciona una <a href=\"https:\/\/github.com\/AuthorizeNet\/sample-code-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca de c\u00f3digo de muestra<\/a> para referencia de los desarrolladores. Para nuestro tutorial, usamos la referencia de <a href=\"https:\/\/github.com\/AuthorizeNet\/sample-code-php\/blob\/master\/RecurringBilling\/create-subscription.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">RecurringBilling<\/a>.<\/p>\n<p>Modificamos ligeramente el <code>createSubscription<\/code>m\u00e9todo del c\u00f3digo de referencia y lo escribimos de la siguiente manera.<\/p>\n<pre><code>function createSubscription($arr_data = [])\n{\n\u00a0\u00a0\u00a0\u00a0extract($arr_data);\n\u00a0\u00a0\u00a0\u00a0\/* Create a merchantAuthenticationType object with authentication details\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0retrieved from the constants file *\/\n\u00a0\u00a0\u00a0\u00a0$merchantAuthentication = new AnetAPIMerchantAuthenticationType();\n\u00a0\u00a0\u00a0\u00a0$merchantAuthentication-&gt;setName(ANET_LOGIN_ID);\n\u00a0\u00a0\u00a0\u00a0$merchantAuthentication-&gt;setTransactionKey(ANET_TRANSACTION_KEY);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Set the transaction's refId\n\u00a0\u00a0\u00a0\u00a0$refId = 'ref'. time();\n\u00a0\u00a0\u00a0\u00a0\/\/ Subscription Type Info\n\u00a0\u00a0\u00a0\u00a0$subscription = new AnetAPIARBSubscriptionType();\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setName(\"Sample Subscription\");\n\u00a0\u00a0\u00a0\u00a0$interval = new AnetAPIPaymentScheduleTypeIntervalAType();\n\u00a0\u00a0\u00a0\u00a0$interval-&gt;setLength($intervalLength);\n\u00a0\u00a0\u00a0\u00a0$interval-&gt;setUnit(\"days\");\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule = new AnetAPIPaymentScheduleType();\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule-&gt;setInterval($interval);\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule-&gt;setStartDate(new DateTime($start_date));\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule-&gt;setTotalOccurrences($totalcycles);\n\u00a0\u00a0\u00a0\u00a0\/\/$paymentSchedule-&gt;setTrialOccurrences(\"1\");\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setPaymentSchedule($paymentSchedule);\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setAmount($amount);\n\u00a0\u00a0\u00a0\u00a0\/\/$subscription-&gt;setTrialAmount(\"0.00\");\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$creditCard = new AnetAPICreditCardType();\n\u00a0\u00a0\u00a0\u00a0$creditCard-&gt;setCardNumber($card_number);\n\u00a0\u00a0\u00a0\u00a0$creditCard-&gt;setExpirationDate($expiry_date);\n\u00a0\u00a0\u00a0\u00a0$payment = new AnetAPIPaymentType();\n\u00a0\u00a0\u00a0\u00a0$payment-&gt;setCreditCard($creditCard);\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setPayment($payment);\n\u00a0\u00a0\u00a0\u00a0$order = new AnetAPIOrderType();\n\u00a0\u00a0\u00a0\u00a0$order-&gt;setInvoiceNumber(mt_rand(10000, 99999));\u00a0\u00a0 \/\/generate random invoice number\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0$order-&gt;setDescription(\"Daily Subscription For 1 USD\"); \n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setOrder($order); \n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$billTo = new AnetAPINameAndAddressType();\n\u00a0\u00a0\u00a0\u00a0$billTo-&gt;setFirstName($first_name);\n\u00a0\u00a0\u00a0\u00a0$billTo-&gt;setLastName($last_name);\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setBillTo($billTo);\n\u00a0\u00a0\u00a0\u00a0$request = new AnetAPIARBCreateSubscriptionRequest();\n\u00a0\u00a0\u00a0\u00a0$request-&gt;setmerchantAuthentication($merchantAuthentication);\n\u00a0\u00a0\u00a0\u00a0$request-&gt;setRefId($refId);\n\u00a0\u00a0\u00a0\u00a0$request-&gt;setSubscription($subscription);\n\u00a0\u00a0\u00a0\u00a0$controller = new AnetControllerARBCreateSubscriptionController($request);\n\u00a0\u00a0\u00a0\u00a0$response = $controller-&gt;executeWithApiResponse( netauthorizeapiconstantsANetEnvironment::SANDBOX);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (($response != null) &amp;&amp; ($response-&gt;getMessages()-&gt;getResultCode() == \"Ok\")) \u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"SUCCESS: Subscription ID: \". $response-&gt;getSubscriptionId(). \"n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0else\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"ERROR :\u00a0 Invalid responsen\";\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$errorMessages = $response-&gt;getMessages()-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Response: \". $errorMessages[0]-&gt;getCode(). \"\u00a0 \" .$errorMessages[0]-&gt;getText(). \"n\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0return $response;\n}<\/code><\/pre>\n<p>Observe la l\u00ednea <code>$response = $controller-&gt;executeWithApiResponse(netauthorizeapiconstantsANetEnvironment::SANDBOX);<\/code>del m\u00e9todo anterior. Cuando pasamos a producci\u00f3n, debemos cambiar SANDBOX a PRODUCCI\u00d3N en esta l\u00ednea. Tambi\u00e9n debemos cambiar nuestra identificaci\u00f3n de inicio de sesi\u00f3n y las claves de transacci\u00f3n para que coincidan con nuestra cuenta real.<\/p>\n<p>Nuestro m\u00e9todo <code>createSubscription<\/code>toma un par\u00e1metro de matriz que deber\u00edamos construir a continuaci\u00f3n.<\/p>\n<pre><code>$arr_subscription = [\n\u00a0\u00a0\u00a0\u00a0'intervalLength' =&gt; 7, \/\/ Here 7 means recurring payment occurs after each 7 days\n\u00a0\u00a0\u00a0\u00a0'start_date' =&gt; date('Y-m-d'),\n\u00a0\u00a0\u00a0\u00a0'totalcycles' =&gt; 10, \/\/Billing cycles. Here 10 means 10 transactions\n\u00a0\u00a0\u00a0\u00a0'amount' =&gt; 1.00,\n\u00a0\u00a0\u00a0\u00a0'card_number' =&gt; '4111111111111111',\n\u00a0\u00a0\u00a0\u00a0'expiry_date' =&gt; '2020-12',\n\u00a0\u00a0\u00a0\u00a0'first_name' =&gt; 'John',\n\u00a0\u00a0\u00a0\u00a0'last_name' =&gt; 'Smith'\n];<\/code><\/pre>\n<p>Estamos utilizando los n\u00fameros de tarjetas de cr\u00e9dito de prueba proporcionados en la <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gu\u00eda de prueba<\/a>.<\/p>\n<p>Al pasar la matriz anterior a la funci\u00f3n <code>createSubscription<\/code>, se crear\u00e1 un pago de suscripci\u00f3n de 1,00 USD despu\u00e9s de cada 7 d\u00edas hasta 10 ciclos de facturaci\u00f3n.<\/p>\n<h3>C\u00f3digo final<\/h3>\n<p><strong>subscriptionpaymen.phpt<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"constants.php\";\n\u00a0\nuse netauthorizeapicontractv1 as AnetAPI;\nuse netauthorizeapicontroller as AnetController;\n\u00a0\n$arr_subscription = [\n\u00a0\u00a0\u00a0\u00a0'intervalLength' =&gt; 7,\n\u00a0\u00a0\u00a0\u00a0'start_date' =&gt; date('Y-m-d'),\n\u00a0\u00a0\u00a0\u00a0'totalcycles' =&gt; 10,\n\u00a0\u00a0\u00a0\u00a0'amount' =&gt; 1.00,\n\u00a0\u00a0\u00a0\u00a0'card_number' =&gt; '4111111111111111',\n\u00a0\u00a0\u00a0\u00a0'expiry_date' =&gt; '2020-12',\n\u00a0\u00a0\u00a0\u00a0'first_name' =&gt; 'John',\n\u00a0\u00a0\u00a0\u00a0'last_name' =&gt; 'Smith'\n];\n\u00a0\ncreateSubscription($arr_subscription);\n\u00a0\nfunction createSubscription($arr_data = [])\n{\n\u00a0\u00a0\u00a0\u00a0extract($arr_data);\n\u00a0\u00a0\u00a0\u00a0\/* Create a merchantAuthenticationType object with authentication details\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0retrieved from the constants file *\/\n\u00a0\u00a0\u00a0\u00a0$merchantAuthentication = new AnetAPIMerchantAuthenticationType();\n\u00a0\u00a0\u00a0\u00a0$merchantAuthentication-&gt;setName(ANET_LOGIN_ID);\n\u00a0\u00a0\u00a0\u00a0$merchantAuthentication-&gt;setTransactionKey(ANET_TRANSACTION_KEY);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Set the transaction's refId\n\u00a0\u00a0\u00a0\u00a0$refId = 'ref'. time();\n\u00a0\u00a0\u00a0\u00a0\/\/ Subscription Type Info\n\u00a0\u00a0\u00a0\u00a0$subscription = new AnetAPIARBSubscriptionType();\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setName(\"Sample Subscription\");\n\u00a0\u00a0\u00a0\u00a0$interval = new AnetAPIPaymentScheduleTypeIntervalAType();\n\u00a0\u00a0\u00a0\u00a0$interval-&gt;setLength($intervalLength);\n\u00a0\u00a0\u00a0\u00a0$interval-&gt;setUnit(\"days\");\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule = new AnetAPIPaymentScheduleType();\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule-&gt;setInterval($interval);\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule-&gt;setStartDate(new DateTime($start_date));\n\u00a0\u00a0\u00a0\u00a0$paymentSchedule-&gt;setTotalOccurrences($totalcycles);\n\u00a0\u00a0\u00a0\u00a0\/\/$paymentSchedule-&gt;setTrialOccurrences(\"1\");\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setPaymentSchedule($paymentSchedule);\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setAmount($amount);\n\u00a0\u00a0\u00a0\u00a0\/\/$subscription-&gt;setTrialAmount(\"0.00\");\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$creditCard = new AnetAPICreditCardType();\n\u00a0\u00a0\u00a0\u00a0$creditCard-&gt;setCardNumber($card_number);\n\u00a0\u00a0\u00a0\u00a0$creditCard-&gt;setExpirationDate($expiry_date);\n\u00a0\u00a0\u00a0\u00a0$payment = new AnetAPIPaymentType();\n\u00a0\u00a0\u00a0\u00a0$payment-&gt;setCreditCard($creditCard);\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setPayment($payment);\n\u00a0\u00a0\u00a0\u00a0$order = new AnetAPIOrderType();\n\u00a0\u00a0\u00a0\u00a0$order-&gt;setInvoiceNumber(mt_rand(10000, 99999));\u00a0\u00a0 \/\/generate random invoice number\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0$order-&gt;setDescription(\"Daily Subscription For 1 USD\"); \n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setOrder($order); \n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$billTo = new AnetAPINameAndAddressType();\n\u00a0\u00a0\u00a0\u00a0$billTo-&gt;setFirstName($first_name);\n\u00a0\u00a0\u00a0\u00a0$billTo-&gt;setLastName($last_name);\n\u00a0\u00a0\u00a0\u00a0$subscription-&gt;setBillTo($billTo);\n\u00a0\u00a0\u00a0\u00a0$request = new AnetAPIARBCreateSubscriptionRequest();\n\u00a0\u00a0\u00a0\u00a0$request-&gt;setmerchantAuthentication($merchantAuthentication);\n\u00a0\u00a0\u00a0\u00a0$request-&gt;setRefId($refId);\n\u00a0\u00a0\u00a0\u00a0$request-&gt;setSubscription($subscription);\n\u00a0\u00a0\u00a0\u00a0$controller = new AnetControllerARBCreateSubscriptionController($request);\n\u00a0\u00a0\u00a0\u00a0$response = $controller-&gt;executeWithApiResponse( netauthorizeapiconstantsANetEnvironment::SANDBOX);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (($response != null) &amp;&amp; ($response-&gt;getMessages()-&gt;getResultCode() == \"Ok\")) \u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"SUCCESS: Subscription ID: \". $response-&gt;getSubscriptionId(). \"n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0else\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"ERROR :\u00a0 Invalid responsen\";\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$errorMessages = $response-&gt;getMessages()-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Response: \". $errorMessages[0]-&gt;getCode(). \"\u00a0 \" .$errorMessages[0]-&gt;getText(). \"n\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0return $response;\n}\n?&gt;<\/code><\/pre>\n<p>Esperamos que comprenda c\u00f3mo configurar pagos recurrentes en Authorize.net. Comparta sus pensamientos en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\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>\u00bfQuieres configurar un pago recurrente en tu aplicaci\u00f3n? En este art\u00edculo, le mostramos c\u00f3mo configurar pagos recurrentes utilizando Authorize.net.<\/p>\n","protected":false},"author":1,"featured_media":20728,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[271],"tags":[849],"class_list":["post-27286","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27286","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=27286"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27286\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20728"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}