#api-bindings #api #culqi #http-api #v2

LibCulqi

Culqi v2 HTTP API的API绑定

2个稳定版本

1.0.1 2023年9月4日

#1597 in Web编程

MIT许可证

20KB
198

Culqi-Rust

Packagist Crates.io

我们的官方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密钥

alt tag

请记住,凭据将通过你在注册过程中提供的电子邮件发送。

  • 要加密有效负载,您需要通过进入CulqiPanel > 开发 > RSA密钥来生成一个id和RSA密钥。

安装

在你的Cargo.toml文件中添加以下依赖项

[dependencies]
culqi = "0.0.1"

配置

为了开始向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 v4Culqi 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),
        }

创建一个计划

计划是一种服务,允许您定义希望多久向客户收取一次款项。

计划定义了订阅的行为。计划可以通过 计划 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

文档

变更日志

本库所有版本的更改均列在 变更日志 中。

作者

Culqi 团队

许可

culqi-python 的源代码基于 MIT 许可证分发,请参阅 LICENSE 文件。

依赖

~17–31MB
~526K SLoC