# QuickPay
Receive payments on your Medusa application using QuickPay

> This project is still under development, and bugs and issues are to be expected. 
> Feel free to file a GitHub Issue if you encounter any such bugs or issues.

## Features
- Two-way integration with QuickPay payment gateway
- Admin UI Extension to display additional payment information from QuickPay
- Support for incoming Webhooks
- Support for refunds
- (In Progress) Admin UI Extension to view settlement information

## How to Install
1. Install the project with your preferred package manager e.g.
```
npm install medusa-payment-quickpay
```

2. Set the following environment variables in .env
```
QUICKPAY_API_KEY=<QUICKPAY_API_KEY_FOR_MERCHANT>
QUICKPAY_PRIVATE_KEY=<QUICKPAY_PRIVATE_KEY_FOR_MERCHANT>
STORE_BASEURL=<STOREFRONT_BASE_URL>
MEDUSA_BASE_URL=<MEDUSA_BACKEND_URL>
```

3. In `medusa-config.js` add the following plugin configuration
```
const plugins = [
  // ...
  {
    resolve: `medusa-payment-paypal`,
    options: {
        api_key: process.env.QUICKPAY_API_KEY,
        private_key: process.env.QUICKPAY_PRIVATE_KEY,
        callback_url: `${process.env.APP_URL}/quickpay/hooks`,
        continue_url_template: `${process.env.STORE_BASEURL}/checkout/confirm/{id}`,
        cancel_url_template: `${process.env.STORE_BASEURL}/checkout/info`,
        enableUI: true
    },
  },
]
```

## Configuration
The plugin supports the following configuration options

### `api_key`
The QuickPay API key for your merchant account. Found in the Integrations section on the QuickPay Manager.

### `private_key` 
(Optional): The QuickPay private-key for your merchant account. This is required for webhook verification, and is only required if you want to enable integrations from QuickPay to Medusa.

Default: `null`


### `auto_capture` 
(Optional): Whether to auto capture payments, i.e. capture on authorize. 

Default: `false`

### `callback_url`
The URL to forward webhooks to - this should point to the `/hooks/quickpay` where your Medusa backend is running, e.g. https://my-medusa-backend.com/quickpay/hooks

This value will override any value set in the QuickPay Manager - leave this undefined to configure it from the QuickPay Manager.

Defaults to the value set in the QuickPay Manager.

### `continue_url_template`

### `cancel_url_template`


