Crate pix_api_client[−][src]
Expand description
You don’t need to wrap PixClient
into an Arc
, since its inner client is already wrapped.
Note
You must take care of manually renewing your oauth token. This is accomplished easily
with helper functions provided by the PixClient
.
Example: Create a new client and fetch the oauth token
use pix_api_client::cob::CobrancaImediata;
use pix_api_client::{Executor, PixClient};
use reqwest::header;
let mut cert_buffer = Vec::new();
File::open("my_cert.pem")?.read_to_end(&mut cert_buffer)?;
// format your headers the way your PSP expects it
// this is just an example
let pix_client = PixClient::new_with_custom_headers(
"https://my-pix-h",
|headers| {
let username = "my-id";
let secret = "my-secret";
let formatted_authorization = format!("{}:{}", username, secret);
let encoded_auth = base64::encode(formatted_authorization);
// and then insert it
headers
.insert(header::AUTHORIZATION, encoded_auth.parse().unwrap())
.unwrap();
},
cert_buffer,
);
let oauth_response = pix_client.oauth().autenticar().execute().await?;
// retrieve your new access token, and store it as your new authorization header
let token = oauth_response.access_token;
pix_client.swap_authorization_token(token.to_string());
// Your client is ready for any further api calls.
Example: Create a new QRCode from a create immediate transaction endpoint
use pix_api_client::cob::{CobrancaImediata, Devedor};
use pix_api_client::{Executor, PixClient};
use pix_brcode::qr_dinamico::PixDinamicoSchema;
use pix_api_client::extensions::FromResponse;
let devedor = Devedor::new_pessoa_fisica("00000000000".to_string(), "Fulano de tal".to_string());
let payload = CobrancaImediata::new(10.25, "my-key".to_string(), devedor);
let response: CobrancaImediata = pix_client
.cob()
.criar_cobranca_imediata(payload)
.execute()
.await?;
let pix: String = PixDinamicoSchema::from_cobranca_imediata_basic(response, "minha loja", "minha cidade").serialize_with_src();
Modules
Structs
A strongly typed client for performing requests to a pix-api compliant provider.