Documentação API
< Documentação >
URL da API:
https://www.assinebem.com.br/api/Encoding:
UTF-8Segurança:
API:
Cada cliente pode cadastrar um ou mais IP's de onde serão feitas as requisições, qualquer requisição feita de um endereço diferente não será aceita.
Secret:
É uma senha, que será necessária em cada requisição para validar a autenticidade.
Token:
Forneceremos um token de acesso, que será usado em cada requisição. No request, adicionar header HTTP-SECURITY-HASH que é composto por:
TOKEN_ACESSO: HASH_SHA256(URL_REQUEST+SECRET+QUERY_STRING)
Encodado em base64.
Obs.: Se o request for GET, então a QUERY_STRING será a QUERY_STRING formatado conforme exemplo: 'param1=valor1¶m2=valor'
Se o request for POST, então a QUERY_STRING será PAYLOAD formatado em JSON.
Classe de autenticação:
from requests.auth import AuthBase
import hashlib
import base64
class AuthAD(AuthBase):
"""Classe para autenticacao Assine Bem."""
self.SECRET = 'seu_secret'
self.TOKEN = 'seu_token'
def __init__(self, url, query):
"""Construtor da classe de autenticacao."""
self.URL_REQUEST = url
self.QUERY_REQUEST = query
def __call__(self, r):
"""Caller method.
Adiciona a security_hash no header.
"""
r.headers['security-hash'] = base64.b64encode(
'%s:%s' % (
self.TOKEN, hashlib.sha256(
self.URL_REQUEST +
self.SECRET +
self.QUERY_REQUEST
).hexdigest()
)
)
return r
require 'vendor/autoload.php';
use GuzzleHttp\Client;
class AuthAD {
# Classe para autenticacao Assine Bem.
public $ASSINE_BEM_SECRET = '';
public $ASSINE_BEM_TOKEN = '';
public $ASSINE_BEM_URL = 'https://www.assinebem.com.br/api/';
public function monta_security_hash($endpoint='', $query_string='')
{
$url_request = $this->ASSINE_BEM_URL.$endpoint;
$hash_acesso = hash('sha256', $url_request.$this->ASSINE_BEM_SECRET.$query_string);
$security_hash = base64_encode($this->ASSINE_BEM_TOKEN.':'.$hash_acesso);
return $security_hash;
}
}
Uso de requisição:
Estrutura POST:
from AuthAD import AuthAD
r = req.post(
url=url, auth=AuthAD(url=url, query=''),
json=data, query=json.dumps(data)
)
response = r.json()
$client = new Client();
$url_endpoint = 'ENDPOINT_QUE_DESEJA';
$headers = [ 'SECURITY-HASH' => 'SUA_HASH'];
$response = $client->request('POST', $url_endpoint, [
'headers' => $headers,
'verify' => false,
'form_params' => ($params ? $params : null)
]);
$json = json_decode($response->getBody(), true);
curl -X POST 'ENDPOINT_QUE_DESEJA' \
-H 'security-hash: SUA_HASH' \
-H 'Accept: application/json' \
-H 'Content-type: application/json' \
-d AQUI_VAI_JSON
Estrutura GET:
from AuthAD import AuthAD
def __formatar_query_string(self, data):
"""Transforma dicionario em query string de GET."""
return '&'.join("%s=%s" % i for i in data.items())
data = {"id_externo": id_externo}
r = req.get(url=url, params=data, auth=AuthAD(
url=url, query=__formatar_query_string(data)))
response = r.json()
$client = new Client();
$url_endpoint = 'ENDPOINT_QUE_DESEJA';
$headers = [ 'SECURITY-HASH' => 'SUA_HASH'];
$response = $client->request('GET', $url_endpoint, [
'headers' => $headers,
'query' => $params
]);
curl -X GET 'ENDPOINT_QUE_DESEJA' \
-H 'security-hash: SUA_HASH' \
-H 'Accept: application/json' \
-H 'Content-type: application/json'