3 个稳定版本
1.0.3 | 2023 年 9 月 9 日 |
---|
#1259 in 网页编程
26KB
268 行
Culqi-Rust
我们的官方 Rust 库,兼容 Culqi API 的 v2.0 版本,您只需简单配置即可使用借记卡和信用卡、Yape、PagoEfectivo、移动钱包和 Cuotéalo 进行收费。
我们的库可以捕获执行 Culqi API 的 HTTP 请求的 status_code
,以及包含获取到的响应体的 response
。
当前版本 | Culqi API |
---|---|
1.0.0 (15-08-2023) | v2 API 参考 |
要求
- Rust 1.6.2+
请记住,要获取您的密钥,您必须进入 CulqiPanel > 开发 > API 密钥。
请记住,凭据将发送到您在注册过程中注册的电子邮件。
- 要加密有效负载,您必须生成一个 ID 和 RSA 密钥,您必须进入 CulqiPanel > 开发 > RSA 密钥。
安装
在您的 Cargo.toml
文件中添加以下依赖项
[dependencies]
culqi = "0.0.1"
如果您使用 Linux,请执行以下命令
sudo apt install libssl-dev
sudo apt install pkg-config
配置
要开始向 Culqi API 发送请求,您必须配置您的公钥 (pk) 和私钥 (sk)。要启用有效负载加密,您必须配置您的 rsa_id 和 rsa_public_key。
const skey : &'static str = "sk_live_34a07dcb6d4c7e39";
const pkey : &'static str = "pk_live_889113cd74ecfc55";
加密有效负载
要加密有效负载,您需要创建一个 RSA ID 和 RSA 密钥,为此您必须进入您的面板并点击左侧导航栏的“开发 / RSA 密钥”部分。
然后在您的后端变量中声明 RSA ID 和 RSA 密钥,并在库的函数中发送它们。
示例
const rsaid : &'static str = "508fc232-0a9d-4fc0-a192-364a0b782b89";
const CULQI_RSA_KEY: &'static str = "-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYp0451xITpczkBrl5Goxkh7m1
oynj8eDHypIn7HmbyoNJd8cS4OsT850hIDBwYmFuwmxF1YAJS8Cd2nes7fjCHh+7
oNqgNKxM2P2NLaeo4Uz6n9Lu4KKSxTiIT7BHiSryC0+Dic91XLH7ZTzrfryxigsc
+ZNndv0fQLOW2i6OhwIDAQAB
-----END PUBLIC KEY-----";
let body = "{\"card_number\":\"4111111111111111\",\"cvv\":\"123\",\"expiration_month\":\"09\",\"expiration_year\":\"2025\",\"email\":\"[email protected]\",\"metadata\":{\"coment\":\"Tarjeta de prueba alexis\"}}";
match createEncrypt(body, "tokens") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
服务
创建令牌
在创建 Cargo 或 Card 之前,您需要创建一个 token
卡片。建议使用 Culqi Checkout v4 或 Culqi JS v4 生成 'tokens',因为非常重要,卡片数据应该直接从您的客户的设备发送到 Culqi 的服务器,以避免信用卡/借记卡的敏感数据风险。
请记住,当您直接与API Token交互时,需要遵守PCI DSS 3.2规范。因此,我们要求您填写SAQ-D表格并将其发送到Culqi的风险邮箱。
statusCode, res, err := culqi.CreateToken(jsonData)
创建交易
创建交易意味着对一张卡收取销售款项。为此,您需要先生成token
并将其作为参数source_id发送。
交易可以通过API交易创建。
match create(body, "charges") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
创建退款
您可以通过API和CulqiPanel免费请求客户购买的部分或全部退款。
退款可以通过API退款创建。
match create(body, "charges") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
创建客户(customer)
客户是一种服务,允许您保存客户信息。这是生成卡片的必要步骤。
客户可以通过客户API创建。
match create(body, "charges") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
创建卡片(card)
卡片是一种服务,允许您保存客户的信用卡或借记卡信息,以便随后进行一键或定期(后续交易无需客户再次输入卡信息)交易。
卡片可以通过卡片API创建。
match create(body, "charges") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
创建计划(plan)
计划是一种服务,允许您定义希望多久对客户进行一次收费。
计划定义了订阅的行为。计划可以通过计划API或从CulqiPanel创建。
match create(body, "charges") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
创建订阅(subscription)
订阅是一种服务,将客户的卡片与商家设定的计划关联起来。
订阅可以通过订阅API创建。
match create(body, "charges") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
创建订单
这是一种服务,允许您为潜在购买生成支付订单。订单包含进行销售所需的所有信息,并由支付系统PagoEfectivo用于执行延迟支付。
订单可以通过订单API创建。
match create(body, "charges") {
Ok((response_text, status_code)) => {
println!("Status Code: {}", status_code);
println!("Response Text: {}", response_text);
}
Err(err) => println!("Error: {:?}", err),
}
测试
$ cargo test
$ cargo test tests::test_token_encrypt
文档
变更日志
此库所有版本的更改都在变更日志中列出。
作者
Culqi团队
许可证
culqi-python的源代码在MIT许可证下分发,请参阅LICENSE文件。
依赖关系
~18–31MB
~531K SLoC