1 个不稳定版本
0.2.1 | 2021年8月31日 |
---|
#5 in #psp
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