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

LibCulqi28

Culqi v2 HTTP API 的 API 绑定

3 个稳定版本

1.0.3 2023 年 9 月 9 日

#1259 in 网页编程

MIT 许可证

26KB
268

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

请记住,凭据将发送到您在注册过程中注册的电子邮件。

  • 要加密有效负载,您必须生成一个 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 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),
        }

创建计划(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