Autenticação V2

A AQPagoAPI oferece uma autenticação robusta e segura através do uso de chaves SSL contidas em arquivos nos formatos .crt, .pem, .cer, .pfx e .p12. Esses arquivos contêm chaves públicas que são essenciais para a autenticação segura com nossos serviços. Para garantir a integridade e segurança das suas interações com a API, é fundamental que você envie essas informações através do cabeçalho da requisição em cada solicitação. Ao utilizar a abordagem REST em nossa API, seus recursos são acessíveis por meio de URLs e respondem a verbos HTTP como POST, PUT, GET e DELETE. O modelo de autenticação utilizado é baseado em chaves públicas SSL cadastrada em nosso portal. Para começar a explorar nossos serviços com segurança, você deve enviar o Access-Id, Access-Time e Access-Signature, acessando a aplicação web aqpago.app. Utilizando esses elementos no cabeçalho da sua requisição, você estará habilitado a interagir com nossa API de maneira confiável e segura, aproveitando ao máximo nossos recursos.

Nota

Para gerar um certificado baixe o OpenSSL , após seguir os passos de instalação, rode o comando em um terminal de seu sistema operacional:

openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate-openssl.pem

Você pode alterar o nome certificate-openssl.pem por um de sua preferência, recomendamos certificado tipo .pem

Exemplos

Atenção: $signature deve estar na mesma sequência do exemplo

        $accessId = "67a35d6f-eebb-44d8-976b-e3bccd65fd82";//PublicKey ID
        $accessTime = time();//Unix Timestamp
        $bodyString = "AQPAGO";//Default
        $privateKeyPem = "MIIEITCCAwmgAwIBAgIUIHOjGP8Ixt74CX...";//Sua privaty key string


        $signature = $accessId . ":" . $accessTime . ":" . $bodyString . ":" . $privateKeyPem;

        $accessSignature = base64_encode($signature);


        $requestHeaders = [
            "Access-Id" => $accessId,
            "Access-Time" => $accessTime,
            "Access-Signature" => $accessSignature,
        ];
#!/bin/bash

# Dados necessários para a autenticação
accessId="67a35d6f-eebb-44d8-976b-e3bccd65fd82" # Public Key ID
accessTime=$(date +%s) # Unix Timestamp
bodyString="AQPAGO" # Default
privateKeyPem="MIIEITCCAwmgAwIBAgIUIHOjGP8Ixt74CX..." # Sua chave privada string

# Criando a assinatura
signature="${accessId}:${accessTime}:${bodyString}:${privateKeyPem}"

# Convertendo a assinatura para base64
accessSignature=$(echo -n "$signature" | base64 -w 0)

# Imprimindo os cabeçalhos
echo "Access-Id: $accessId"
echo "Access-Time: $accessTime"
echo "Access-Signature: $accessSignature"

const crypto = require('crypto');

// Dados necessários para a autenticação
const accessId = "67a35d6f-eebb-44d8-976b-e3bccd65fd82"; // Public Key ID
const accessTime = Math.floor(Date.now() / 1000); // Unix Timestamp
const bodyString = "AQPAGO"; // Default
const privateKeyPem = `MIIEITCCAwmgAwIBAgIUIHOjGP8Ixt74CX...`; // Sua chave privada string

// Criando a assinatura
const signature = `${accessId}:${accessTime}:${bodyString}:${privateKeyPem}`;

// Convertendo a assinatura para base64
const accessSignature = crypto.createHash('sha256').update(signature).digest('base64');

// Cabeçalhos da requisição
const requestHeaders = {
    "Access-Id": accessId,
    "Access-Time": accessTime,
    "Access-Signature": accessSignature
};

// Imprimindo os cabeçalhos
console.log("Access-Id:", requestHeaders["Access-Id"]);
console.log("Access-Time:", requestHeaders["Access-Time"]);
console.log("Access-Signature:", requestHeaders["Access-Signature"]);

require 'base64'
require 'digest'

# Dados necessários para a autenticação
access_id = "67a35d6f-eebb-44d8-976b-e3bccd65fd82" # Public Key ID
access_time = Time.now.to_i # Unix Timestamp
body_string = "AQPAGO" # Default
private_key_pem = "MIIEITCCAwmgAwIBAgIUIHOjGP8Ixt74CX..." # Sua chave privada string

# Criando a assinatura
signature = "#{access_id}:#{access_time}:#{body_string}:#{private_key_pem}"

# Calculando o hash SHA-256 da assinatura
hash = Digest::SHA256.digest(signature)

# Convertendo o hash para base64
access_signature = Base64.strict_encode64(hash)

# Cabeçalhos da requisição
request_headers = {
  "Access-Id" => access_id,
  "Access-Time" => access_time.to_s,
  "Access-Signature" => access_signature
}

# Imprimindo os cabeçalhos formatados para envio na requisição
request_headers.each do |key, value|
  puts "#{key}: #{value}"
end

import base64
import hashlib
import time

# Dados necessários para a autenticação
access_id = "67a35d6f-eebb-44d8-976b-e3bccd65fd82"  # Public Key ID
access_time = int(time.time())  # Unix Timestamp
body_string = "AQPAGO"  # Default
private_key_pem = "MIIEITCCAwmgAwIBAgIUIHOjGP8Ixt74CX..."  # Sua chave privada string

# Criando a assinatura
signature = f"{access_id}:{access_time}:{body_string}:{private_key_pem}".encode()

# Calculando o hash SHA-256 da assinatura
hash = hashlib.sha256(signature).digest()

# Convertendo o hash para base64
access_signature = base64.b64encode(hash).decode()

# Cabeçalhos da requisição
request_headers = {
    "Access-Id": access_id,
    "Access-Time": str(access_time),
    "Access-Signature": access_signature
}

# Imprimindo os cabeçalhos formatados para envio na requisição
for key, value in request_headers.items():
    print(f"{key}: {value}")