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'