{"id":27046,"date":"2021-05-06T16:50:00","date_gmt":"2021-05-06T13:50:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27046"},"modified":"2021-10-18T04:16:40","modified_gmt":"2021-10-18T01:16:40","slug":"como-configurar-pagamentos-recorrentes-em-authorize-net","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-configurar-pagamentos-recorrentes-em-authorize-net\/","title":{"rendered":"Como configurar pagamentos recorrentes em Authorize.net"},"content":{"rendered":"<p>Escrevemos um artigo <a href=\"https:\/\/themewp.inform.click\/pt-pt\/aceite-pagamentos-com-cartao-de-credito-usando-authorize-net-payment-gateway-em-php\/\" title=\"Aceitar pagamento com cart\u00e3o de cr\u00e9dito usando o gateway de pagamento Authorize.net\">Aceitar pagamento com cart\u00e3o de cr\u00e9dito usando o gateway de pagamento Authorize.net<\/a>. Nesse artigo, discutimos como se pode receber pagamentos com cart\u00e3o de cr\u00e9dito por meio do Authorize.net. Al\u00e9m disso, esse artigo concentra-se basicamente no pagamento \u00fanico.<\/p>\n<p>Mas e se algu\u00e9m quiser integrar pagamentos recorrentes em seu aplicativo? Neste artigo, mostramos como configurar pagamentos recorrentes usando <a href=\"http:\/\/reseller.authorize.net\/application\/103001\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.net<\/a>.<\/p>\n<h3>O que \u00e9 pagamento recorrente?<\/h3>\n<p>Pagamento recorrente ou de assinatura significa cobrar automaticamente no cart\u00e3o de cr\u00e9dito um valor fixo ap\u00f3s um intervalo espec\u00edfico e por um per\u00edodo de tempo especificado.<\/p>\n<p>Por exemplo, digamos que voc\u00ea esteja executando o seu site na hospedagem <a href=\"https:\/\/www.bluehost.com\/track\/artisansweb\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bluehost<\/a> e tenha pago uma quantia no primeiro ano. Quando o seu plano expirar, a Bluehost cobrar\u00e1 automaticamente o pagamento do seu cart\u00e3o de cr\u00e9dito no pr\u00f3ximo ano (se voc\u00ea escolheu a op\u00e7\u00e3o de pagamento recorrente).<\/p>\n<p>A vantagem de permitir o plano de assinatura \u00e9 que voc\u00ea n\u00e3o precisa se lembrar da data de expira\u00e7\u00e3o do servi\u00e7o que est\u00e1 usando. O provedor de servi\u00e7os o mant\u00e9m como um sistema automatizado. Assim que seu plano expirar, eles renovam seu servi\u00e7o recebendo pagamentos de seu cart\u00e3o de cr\u00e9dito em segundo plano.<\/p>\n<p>Dito isso, vamos ver como configurar pagamentos recorrentes usando Authorize.net.<\/p>\n<p>Voc\u00ea deve primeiro ler nosso artigo <a href=\"https:\/\/themewp.inform.click\/pt-pt\/aceite-pagamentos-com-cartao-de-credito-usando-authorize-net-payment-gateway-em-php\/\" title=\"Aceitar pagamento com cart\u00e3o de cr\u00e9dito usando o gateway de pagamento Authorize.net\">Aceitar pagamento com cart\u00e3o de cr\u00e9dito usando o gateway de pagamento Authorize.net<\/a>. Nesse artigo, discutimos sobre a instala\u00e7\u00e3o e configura\u00e7\u00e3o das <a href=\"https:\/\/github.com\/AuthorizeNet\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bibliotecas do SDK<\/a> do <a href=\"https:\/\/github.com\/AuthorizeNet\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.net<\/a>.<\/p>\n<p>Para nosso tutorial, estamos usando a conta sandbox. Portanto, voc\u00ea deve primeiro criar sua <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">conta Sandbox<\/a> e obter suas chaves de API. Voc\u00ea pode encontrar suas chaves de API em <strong>Conta-&gt; Credenciais e chaves de API<\/strong>.<\/p>\n<h3>Instala\u00e7\u00e3o<\/h3>\n<p>Para come\u00e7ar, precisamos instalar a <a href=\"https:\/\/github.com\/AuthorizeNet\/sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca PHP SDK<\/a>. Recomendamos o <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> para instalar a biblioteca.<\/p>\n<p>Crie um <code>composer.json<\/code>arquivo no diret\u00f3rio raiz do seu projeto e adicione o c\u00f3digo abaixo nele.<\/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 o terminal no diret\u00f3rio raiz do seu projeto e execute o <code>composer install<\/code>comando. Este comando ir\u00e1 baixar a depend\u00eancia de uma biblioteca.<\/p>\n<h3>Configure o ambiente<\/h3>\n<p>Instalamos a biblioteca PHP SDK. Agora crie dois arquivos chamados <code>constants.php<\/code>e <code>subscriptionpayment.php<\/code>. No arquivo constants.php, armazenamos nossas chaves de API da seguinte maneira.<\/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>Certifique-se de ter substitu\u00eddo os marcadores YOUR_LOGIN_ID e YOUR_TRANSACTION_KEY por valores reais.<\/p>\n<p><code>subscriptionpayment.php<\/code>\u00e9 o arquivo onde escreveremos um c\u00f3digo para pagamentos de assinatura de um cart\u00e3o de cr\u00e9dito. Para fazer isso primeiro, precisamos incluir os arquivos principais da 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 pagamentos recorrentes em Authorize.net<\/h3>\n<p>Authorize.net fornece uma <a href=\"https:\/\/github.com\/AuthorizeNet\/sample-code-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca de c\u00f3digo de amostra<\/a> para refer\u00eancia dos desenvolvedores. Para nosso tutorial, estamos usando a refer\u00eancia 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 ligeiramente o <code>createSubscription<\/code>m\u00e9todo do c\u00f3digo de refer\u00eancia e o escrevemos da seguinte maneira.<\/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 a linha <code>$response = $controller-&gt;executeWithApiResponse(netauthorizeapiconstantsANetEnvironment::SANDBOX);<\/code>do m\u00e9todo acima. Quando mudamos para a produ\u00e7\u00e3o, devemos mudar SANDBOX para PRODU\u00c7\u00c3O nesta linha. Al\u00e9m disso, precisamos alterar nosso id de login e chaves de transa\u00e7\u00e3o para combinar com nossa conta ao vivo.<\/p>\n<p>Nosso m\u00e9todo <code>createSubscription<\/code>usa um par\u00e2metro de matriz que devemos construir da maneira abaixo.<\/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 usando n\u00fameros de cart\u00e3o de cr\u00e9dito de teste fornecidos no <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guia de teste<\/a>.<\/p>\n<p>Ao passar a matriz acima para a fun\u00e7\u00e3o <code>createSubscription<\/code>, ele criar\u00e1 um pagamento de assinatura de 1,00 USD a cada 7 dias at\u00e9 10 ciclos de faturamento.<\/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 voc\u00ea entenda como configurar pagamentos recorrentes em Authorize.net. Por favor, compartilhe suas id\u00e9ias na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea deseja configurar o pagamento recorrente em seu aplicativo? Neste artigo, mostramos como configurar pagamentos recorrentes usando 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":[278],"tags":[848],"class_list":["post-27046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27046"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27046\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/20728"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}