Categoria Manuais E-commerce

porModerniza

Erros de segurança – REST API / WooCommerce

Existem quatro tipos de erros na comnicação com o REST API :

Código do Erro Tipo
400 Bad Request (Solicitação Inválida) Invalid request, e.g. using an unsupported HTTP method
401 Unauthorized (Proibido) Authentication or permission error, e.g. incorrect API keys
404 Not Found (Página não Encontrada) Requests to resources that don’t exist or are missing
500 Internal Server Error (Erro Interno)  Server error

Para testar a comunicação com o plugin REST API Log ou com o aplicativo Postman.

Exemplo de erros WP REST API e como resolver:

Casos de retorno 404 se referem a URL não encontrada, ou alguma informação que falta na URL para o servidor encontrar o caminho.

{
  "code": "rest_no_route",
  "message": "No route was found matching the URL and request method",
  "data": {
    "status": 404
}

{
"code": "woocommerce_rest_term_invalid",
"message": "Resource doesn't exist.",
"data": {
"status": 404
}

Teste comuns:

POST https://example.com/wp-json/wc/v2/products
GET https://example.com/product/<ID>
POST http://example.com/wp-json/jwt-auth/v1/token

Lembrem-se de colocar os parâmetros de usuário, senha,consumer_key e consumer_secret.

    Casos de retorno 401 se referem a permissões:


{
"code": "woocommerce_rest_cannot_create",
"message": "Sorry, you are not allowed to create resources.",
"data": {
"status": 401

}

{
"code": "rest_cannot_create",
"message": "Sorry, you are not allowed to create new posts.",
"data": {
"status": 401
}

Podemos resolver o erro 401 das seguintes formas:

    • Verifique seu .htacess adicione ou modifique a posição:

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* – [e=HTTP_AUTHORIZATION:%1]

    • Adicione  ao .htacess caso tenha dominio e subdominio.

RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    • Verifique no .htacess se há configurações padrões do servidor e as retire.
    • Verifique as permissões de usuário na integração do WooCommerce.
    • Refaça as chaves consumer_key e secrect_key.

 

Erros retornam o status do HTTP e a resposta com o código do erro e mensagem correspondente.

Você pode verificar também a documentação da API: https://woocommerce.github.io/woocommerce-rest-api-docs

porModerniza

Instalação E-Commerce

Configuração WordPress

Para instalação do WordPress, você pode seguir os seguintes passos desse link.

Para instalar o WordPress: Pacote de Instalação WordPress 

Requisitos mínimos para o WordPress:

  • Servidor baseado em UNIX/Linux
  • PHP versão 7.3 ou superior
  • MySQL versão 5.6 ou superior OU MariaDB versão 10.0 ou superior
  • Memória para o PHP de pelo menos 64 MB (Somente para o software WordPress, sem plugins adicionais)

Requisitos mínimos para Plugins:

  • Memória para o PHP de pelo menos 256 MB;
  • Apache;
  • Módulo mod_rewrite do Apache ativo;
  • Extensões PHP como php_exif, php_GD etc (recursos nativos e de plugins).

Instalando por ferramentas do serviço

Contate a sua empresa de hospedagem e siga as recomendações e especificações dela.

Instalando o WordPress

Automática:

Caso utilize:

    • Um servidor remoto, baixe o pacote do WordPress no seu computador com um navegador web e descompacte o pacote.
    • FTP, baixe o pacote do WordPress no seu computador com um navegador web e descompacte o pacote, faça upload e acesse o domínio que fez instalação.

Manual:

Para instalar o WordPress você deve seguir esses passos, mas você pode acessar conteúdo detalhado simples aqui e conteúdo detalhado avançado aqui.

  • Baixe e descompacte o pacote do WordPress.
  • Crie um banco de dados para o WordPress no seu servidor web, com um usuário com todos os privilégios de acesso e modificação.
  • Copie e renomeie o arquivo wp-config-sample.php para wp-config.php.
  • Abra o arquivo wp-config.php em um editor de texto (preferêncialmente Notepad++ ou bloco de notas ) e preencha os seus dados de banco de dados, para gerar e utilizar sua senha de chave secreta.

OBS.: Antes de configurar o arquivo lembre-se de salvar um cópia do arquivo wp-config-sample.php

Configurando wp-config.php

Você pode acessar o conteúdo detalhado aqui.

Para configurar o arquivo é necessário que tenha as seguintes informações:

Nome do Banco de Dados

    Esse é o nome do Banco de Dados que você quer que o WordPress use.

Usuário do Banco de Dados

    O nome de usuário usado para que o WordPress acesse o banco. Você pode criar um pelo Painel do sue host ou equivalente.

Senha do Banco de Dados

    Senha usada pelo usuário para acessar o banco.

Database Host

    O nome do host que hospeda o servidor MySQL.

Você editará essa sessão, respectivamente:

// ** Configurações do MySQL - Você pode pegar essas informações com o serviço de hospedagem ** //
/** O nome do banco de dados do WordPress */
define('DB_NAME', 'nomedoBD');

/** Usuário do banco de dados MySQL */
define('DB_USER', 'usuarioMySQL');

/** Senha do banco de dados MySQL */
define('DB_PASSWORD', 'senha');

/** nome do host do MySQL */
define('DB_HOST', 'localhost');
define('AUTH_KEY',         'coloque a sua frase única aqui');
define('SECURE_AUTH_KEY',  'coloque a sua frase única aqui');
define('LOGGED_IN_KEY',    'coloque a sua frase única aqui');
define('NONCE_KEY',        'coloque a sua frase única aqui');
define('AUTH_SALT',        'coloque a sua frase única aqui');
define('SECURE_AUTH_SALT', 'coloque a sua frase única aqui');
define('LOGGED_IN_SALT',   'coloque a sua frase única aqui');
define('NONCE_SALT',       'coloque a sua frase única aqui');
  • Para geração de chaves utilize desse link : https://api.wordpress.org/secret-key/1.1/salt/
  • Coloque os arquivos do WordPress no local desejado no seu servidor web:
  • Execute o script de instalação do WordPress, acessando wp-admin/install.php no seu navegador.
  • Se você instalou o WordPress no diretório raiz, você deve visitar: http://exemplo.com/wp-admin/install.php
  • Se você instalou o WordPress em seu próprio sub-diretório chamado blog , por exemplo, você deve visitar: http://exemplo.com/blog/wp-admin/install.php
  • Adicione a chave ao arquivo:
     define('JWT_AUTH_SECRET_KEY', 'COPIARQUALQUERCHAVEDOSITEACIMA');
  • Exemplo de como o ser arquivo irá ficar
// ** Configurações do MySQL - Você pode pegar essas informações com o serviço de hospedagem ** //
/** O nome do banco de dados do WordPress */
define('DB_NAME', 'nomedoBD');

/** Usuário do banco de dados MySQL */
define('DB_USER', 'usuarioMySQL');

/** Senha do banco de dados MySQL */
define('DB_PASSWORD', 'senha');

/** nome do host do MySQL */
define('DB_HOST', 'localhost');
define('AUTH_KEY', '2>clCCVok+)8N0D$ecRv(H,m}(T=gMnU+H`ne]U6d~g+K8M?3O`:Lbj-x?@QLg`{');
define('SECURE_AUTH_KEY', '-7^m|jDY4&ys1U:IK-2|-{c=n7]Kgmwtl*+cr,%2Apk?gBm0 %IAvx2Y}@.F|y3x');
define('LOGGED_IN_KEY', 'eMoF:Yk.{{L (g+.Tns]#7Ng FI`{5pc&c6S!lbLM_]GZaA1amy+mW?~hHc;7M-5');
define('NONCE_KEY', 'BZnXx@_4o!{j-1J(GtRuT<<t@_(5n~76/09>TQZ(+vupeN8kT-B>v-eXO?+!^Ol1');
define('AUTH_SALT', 'y,-b)->Nf7+gEOxc<LDiia?#6N9q,Uy6dqo{|@qV}H2vS3P[T31Sg+Mk#{{8v~@#');
define('SECURE_AUTH_SALT', 'u:`97t|<1`@C%3zPAkP:rpZ{_b+|d&76oLOgE]yk=X*KOK^wc8<*V?q|OrpZn7KA');
define('LOGGED_IN_SALT', '&qhXE-EId2/#eC|}*+|a;zo@+k2BxMbGJ}dm|: br`j0:h~@8aDxi0Ny62byiO&9');
define('NONCE_SALT', 'KRg9l%C#Kpv,1$[nzxFMR=+O8I.+!XX:Gv~xOW+&pj7kwz;djDQZ5f(Q0$wi[>RD');
define('JWT_AUTH_SECRET_KEY', 'K$9`:KNttje=NI;~^X i+pLoJLbs^j9bJ+LKf8=o,||#OeG}iQA_9C[*;cPq])Sq');
  • PHP HTTP Authorization Header enable

    Maioria dos host vem com o HTTP Authorization Header desabilitado  por padrão.

    Para habilitá-lo é necessário editar o arquivo .htaccess e adicionar as seguintes linhas.

    RewriteEngine on
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
    

    Ele deve ficar da seguinte forma:

Integração Moderniza:

Necessário instalação e ativação dos seguintes plugins:

JWT Authentication for WP REST API

WordPress REST API (Version 2)

Pode ser testado a comunicação com o plugin REST API Log ou com o aplicativo Postman.

REST API Log

Instalação E-Commerce

Após a instalação do WordPress finalizada devemos adicionar o plugin WooCommerce no site.

Em ”Painel” > ”Plugins” > ”Adicionar novo” > ”Instalar” > ”Ativar”.

Configurações WooCommerce

Após a instalação do WooCommerce e os plugins citados anteriormentee a ativação dos mesmos, se faz necessário configurar em WooCommerce > Configurações >  Avançado.

Em API REST clique em “Adicionar nova chave”:

Adicione a Descrição, o usuário com permissão de administrador e as permissões de Ler/Escrever:

 

Após isso clique em “Gerar uma chave de API”, a partir disso gerará uma chave Consumer key e Consumer Secretc que será utilizada dentro do sistema.

Em API ANTIGA deve-se ativar a Api Rest antiga marcando no checkbox.

No Moderniza Loja em Comercial>Loja Virtual

Será necessário a inclusão da Loja Virtual realizando o cadastro na tela Cadastro de Loja Virtual

Cadastro de Loja Virtual

Se faz necessário o cadastro de filial, descrição, URL da loja, Consumer key e Consumer Secret e usuário senha do wordpress.

Caso tenha problemas de comunicação leia AQUI.

Para saber com adicionar hierarquias e produtos no e-commerce clique aqui.