sp-plugin-rust-test 0.3.5

Rust plugin for for quick integration of shurjopay API
![image](https://user-images.githubusercontent.com/57352037/170198396-932692aa-3354-4cf0-abc1-2b8ef43a6de3.png)
# ShurjoPay


[![Test Status](https://github.com/rust-random/rand/workflows/Tests/badge.svg?event=push)]()
[![Crate](https://img.shields.io/crates/v/rand.svg)]()
[![Book](https://img.shields.io/badge/book-master-yellow.svg)]()
[![API](https://img.shields.io/badge/api-master-yellow.svg)]()
[![API](https://docs.rs/rand/badge.svg)](https://docs.rs/rand)
[![Minimum rustc version](https://img.shields.io/badge/rustc-1.51+-lightgray.svg)]()


# Shurjopaypayment gateway Rust Crate


It handles many of the things that most people need to do manually

- Handles http request and request errors
- JSON serialization and deserialization
- Authentication during checkout and verification of payments


### Shurjopay Rust integration steps


> 📝 **NOTE** For shurjoPay live engine integration's all necessary credential will be given to merchant after subscription completed on shurjoPay gateway.


## Usage


Add this to your `Cargo.toml`:

```toml
[dependencies]
sp-plugin-rust-test = "0.1.0"
```




# Shurjopay-Rust-Plugin

#### To integrate the shurjoPay Payment Gateway in your Rust project do the following tasks sequentially.


### step:1  Cargo.toml file Configuration


```toml
[dependencies]
sp-plugin-rust-test = "0.1.0"
```

### step:2  Import Crate into your project

```
use sp_plugin_rust_test::Shurjopay::ShurjopayPlugin;
```
### step:3  creating a new instance of Shurjopayplugin

```
let mut sp_instance = ShurjopayPlugin::new();
```
## Configure Shurjopay  

### step:4  setting configuration of Shurjopayplugin


you can configure ShurjopayPlugin two ways

* option1: configure plugin using .env file
```
sp_instance.set_config_from_env_file();
```
in this way you need to configure .env file in this way.

*** keep the .toml and .evn file in the same directiory *** 

```
# .env

SP_USER="sp_sandbox"
SP_PASS="pyyk97hu&6u6"
POST_DEFAULT_ADDRESS="https://sandbox.shurjopayment.com"
TOKEN_END_POINT="/api/get_token"
SECURE_PAYMENT_END_POINT="/api/secret-pay"
VERIFICATION_END_POINT="/api/verification"
PAYMENT_STATUS_END_POINT="/api/payment-status"
DEFAULT_RETURN_URL="https://sandbox.shurjopayment.com/response"
DEFAULT_CANCEL_URL="https://sandbox.shurjopayment.com/response"
```


* option2: Configure plugin using this function
```
sp_instance.set_all_config(
        "sp_sandbox".to_string(),
        "pyyk97hu&6u6".to_string(),
        "https://sandbox.shurjopayment.com".to_string(),
        "/api/get_token".to_string(),
        "/api/secret-pay".to_string(),
        "/api/verification".to_string(),
        "/api/payment-status".to_string(),
        "https://www.sandbox.shurjopayment.com/response".to_string(),
        "https://www.sandbox.shurjopayment.com/response".to_string(),
        );
```

## Make Payment

### step:5 To intiate make payment fisrt you need configure payment request object using the following function and pass the object into make_payment_no_auto_redirect() function

```
let payment_req_obj = sp_instance.make_payment_request_object(
    "786".to_string(),              // amount
    "abc123".to_string(),           // order_id
    "BDT".to_string(),              // currency
    "Mahmudul Islam".to_string(),   // customer_name
    "Dhaka".to_string(),            // customer_address
    "01811177722".to_string(),      // customer_phone
    "Dhaka".to_string(),            // customer_city
    "1203".to_string(),             // customer_post_code
    );
```


```
let checkout_url = sp_instance.make_payment(payment_req_obj) 
```


## Verify Payment

### step:6 to verify payment you need use this function

```
let response = sp_instance.verify_payment(Some("sp63935da67dfd3".to_string()));
println!("verify Payment Response:  {:?}",response);
if response.is_some()
{
		println!("{:#?}", response.unwrap().clone().sp_message.unwrap());
}
```


## License


Licensed under:

- Apache License, Version 2.0 ([LICENSE-APACHE]LICENSE-APACHE or http://apache.org/licenses/LICENSE-2.0)

### Who do I talk to? ###

	For any technical assistance please contact to: https://shurjopay.com.bd/#contacts