Endpoint responsável por buscar uma chave RSA para encriptar os dados do cartão

O Card Hash é criado a partir de uma QueryString com valores URLencoded dos dados do cartão

card_number = 4901720077543335

card_expiration_date = 122013

card_cvv = 314

Neste caso a QueryString seria: card_number=4901720077543335&card_expiration_date=122013&card_cvv=314

Agora será necessário fazer uma criptografia pública com RSA e o padding PKCS1Padding usando a public_key que você recebeu na request passando a QueryString construída e converter o resultado para Base64

Você pode buscar um RSA Key para encriptar os dados do cartão para uma transação.
Gerando um Card Hash

O seu cardhash será compost por id + "" + encrypted_string_base64

ESSA CHAVE SERÁ VÁLIDA POR 90 SEGUNDOS APÓS A REQUISIÇÃO

Código de Exemplo em Php

<?
use GuzzleHttp\Client;
use phpseclib\Crypt\RSA;

// A sua Chave de integração belluno SANDBOX

$key = "";

$headers = array();

$headers['Content-Type'] = 'application/json';

$headers['Authorization'] = "Bearer " . $key;

$request = array();

$request["headers"] = $headers;

$client = new Client();

$response = $client->request(

    'GET',

    "https://ws-sandbox.bellunopag.com.br/transaction/card_hash_key",
    
    $request
);

$responseDecoded = json_decode($response->getBody()->getContents());

$card_number = '4970100000000055';

$card_expiration_date = '112021';

$card_cvv = '123';

$stringHash = "card_number=$card_number&card_expiration_date=$card_expiration_date&card_cvv=$card_cvv";

$rsa = new RSA();

$rsa->setEncryptionMode(RSA::ENCRYPTION_PKCS1);

$rsa->loadKey($responseDecoded->rsa_public_key);

$crypto = $rsa->encrypt($stringHash);

$crypto_64 = base64_encode($crypto);

$card_hash =  "" . $responseDecoded->id . "_" . $crypto_64 . "";
function getHashKey(uid) {

  return $.ajax({
    type: "GET",
    url: `https://api.belluno.digital/link/${uid}/card_hash_key`,
    headers: {
      Authorization: "Basic acces_token",
    },
    dataType: "JSON",
    success: function (response) { },
    error: function (response) {
      console.log(response);
    },
  });
}

function hash(id, public_key, card) {

  var encrypt = new JSEncrypt();
  encrypt.setPublicKey(public_key);

  card_string = `card_number=${card.number}&card_expiration_date=${card.expire}&card_cvv=${card.cv}`;

  var encrypted = encrypt.encrypt(card_string);

  hash = "" + id + "_" + encrypted;

  return hash;
}

response = getHashKey();
card_hash = hash(response.id, response.public_key, {
  number: '123...',
  expire: '05/2026',
  cv: '123'
});
Language
Authorization
Bearer
URL
Click Try It! to start a request and see the response here!