#tinkoff #api #open-source #bank #acquiring

tinkoffpay

Simple tinkoff integration (the seller receives a link to the payment form and redirect the buyer to it); NB: with callback method

4 stable releases

1.0.3 Oct 11, 2022
1.0.1 Oct 7, 2022

#896 in Asynchronous

Download history 4/week @ 2024-02-25 19/week @ 2024-03-31 63/week @ 2024-04-07

82 downloads per month

Apache-2.0

185KB
323 lines

TinkoffPay-rs

⭐️ Leave me a start please ⭐️

it will motivate me to continue maintaining and adding futures

Github top language Github language count Repository size License Crates.io

About   |   Technologies   |   Requirements   |   Starting   |   Usage   |   License & Screen   |   Author


🎯 About

Simple tinkoff integration (the seller receives a link to the payment form and redirect the buyer to it); NB: with callback method

🚀 Technologies

The following tools were used in this project:

✅ Requirements

Before starting 🏁, you need to have Git and Rust installed.

🏁 Starting

# Clone this project
$ git clone https://github.com/KM8Oz/tinkoffpay-rs

# Access
$ cd tinkoffpay-rs

# Install dependencies
$ cargo install --path=.

# Run the project
$ cargo test request_demo_url -- --nocapture 

# The server will initialize in the <http://localhost:3000>

✅ Usage

    use crate::{Payments, Receipt, Taxation, TaxNDK};
// should be an async fn 
    let payment_url = Payments::default()
        .build(
            "TinkoffBankTest",
            "https://bulkus.ru/pay_back", 
            //  Success or Fail URL (GET) =  [your callback url]?order_id=[orderid]
            //  payment catch url (POST) has those params:
            //           Json(Object {
            //          "Amount": Number(10000),
            //          "CardId": Number(130550983),
            //          "ErrorCode": String("0"),
            //          "ExpDate": String("1122"),
            //          "OrderId": String("278600"),
            //          "Pan": String("430000******0777"),
            //          "PaymentId": Number(1866123460),
            //          "Status": String("CONFIRMED"),
            //          "Success": Bool(true),
            //          "TerminalKey": String("1639044907391DEMO"),
            //          "Token": String("711cd4fa0df2afa8a69a56884e9d902eb882c9a01af56498fc6bfdefaf9eef8d")
            //          })
            "210950", 
            "Подарочная карта на 1400.00 рублей")
        .set_amount(500) // in ruble
        .set_customer("+71234567890", "a@test.com")
        .set_receipt(
            Receipt::default()
            .build(
                "a@test.com", 
                "+71234567890", 
                "a@test.com", 
                Taxation::OSN
            )
            .add_item(
                "Наименование товара 1", // name
                1, // quantity
                100, // in ruble
                TaxNDK::None
            )
            .add_item(
                "Наименование товара 2", // name
                2, // quantity
                200, // in ruble
                TaxNDK::None
            )
        )
        .to_url().await;
        match payment_url.clone() {
            Ok(m) => {
                println!("payment url: {:?}", m);
            },
            Err(err) => {
                println!("payment error: {:?}", err);
            }
        }

📝 License

This project is under license from MIT. For more details, see the LICENSE file.

Made with ❤️ by @KM8Oz  

TinkoffPay-rs

 

  Back to top

Dependencies

~6–18MB
~231K SLoC