#api-client #pix #compliant #reqwest #arc #header #psp

pix-api-client

适用于任何合规PSP的PIX API客户端

1 个不稳定版本

0.2.1 2021年8月31日

#5 in #psp

MIT 许可证

34KB
587 代码行

pix-api-client

由于其内部reqwest客户端已经包装,因此无需将客户端包装在Arc中。

注意

您需要手动处理oauth令牌的续订。这可以通过PixClient提供的辅助函数非常容易地完成。

示例:创建新的客户端并获取oauth令牌

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.

示例:从创建即时交易的端点创建新的QR码

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();

许可证:MIT

依赖关系

~8–20MB
~307K SLoC