# uncloud-pay

The generic product/payment system.

## Installation

```shell script
pip3 install -r requirements.txt
```

## Getting Started

```shell script
python ucloud_pay.py
```

## Usage

#### 1. Adding of products
```shell script
http --json http://[::]:5000/product/add username=your_username_here password=your_password_here specs:=@ipv6-only-vm.json
```

#### 2. Listing of products
```shell script
http --json http://[::]:5000/product/list
```

#### 3. Registering user's payment method (credit card for now using Stripe)

```shell script
http --json http://[::]:5000/user/register_payment card_number=4111111111111111 cvc=123 expiry_year=2020 expiry_month=8 card_holder_name="The test user" username=your_username_here password=your_password_here line1="your_billing_address" city="your_city" country="your_country"
```

#### 4. Ordering products

First of all, user have to buy the membership first.

```shell script
http --json http://[::]:5000/product/order username=your_username_here password=your_password_here product_id=membership pay=True
```

```shell script
http --json http://[::]:5000/product/order username=your_username_here password=your_password_here product_id=ipv6-only-vm cpu=1 ram=1 os-disk-space=10 os=alpine pay=True
```

#### 5. Listing users orders

```shell script
http --json POST http://[::]:5000/order/list username=your_username_here password=your_password_here
```