71 lines
2.7 KiB
PHP
71 lines
2.7 KiB
PHP
<?php
|
|
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
// Paystack transactions table
|
|
if (!$CI->db->table_exists(db_prefix() . 'paystack_transactions')) {
|
|
$CI->db->query('CREATE TABLE `' . db_prefix() . 'paystack_transactions` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`invoice_id` int(11) NOT NULL,
|
|
`reference` varchar(100) NOT NULL,
|
|
`email` varchar(100) NOT NULL,
|
|
`amount` decimal(15,2) NOT NULL,
|
|
`status` varchar(20) DEFAULT NULL,
|
|
`transaction_date` datetime NOT NULL,
|
|
`date_created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `invoice_id` (`invoice_id`),
|
|
KEY `reference` (`reference`),
|
|
KEY `status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=' . $CI->db->char_set . ';');
|
|
}
|
|
|
|
// Paystack payment logs table
|
|
if (!$CI->db->table_exists(db_prefix() . 'paystack_payment_logs')) {
|
|
$CI->db->query('CREATE TABLE `' . db_prefix() . 'paystack_payment_logs` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`transaction_id` int(11) DEFAULT NULL,
|
|
`invoice_id` int(11) DEFAULT NULL,
|
|
`amount` decimal(15,2) DEFAULT NULL,
|
|
`message` text,
|
|
`log_type` varchar(50) DEFAULT NULL,
|
|
`ip_address` varchar(45) DEFAULT NULL,
|
|
`user_agent` text,
|
|
`date_created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `transaction_id` (`transaction_id`),
|
|
KEY `invoice_id` (`invoice_id`),
|
|
KEY `log_type` (`log_type`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=' . $CI->db->char_set . ';');
|
|
}
|
|
|
|
// Paystack webhook logs table
|
|
if (!$CI->db->table_exists(db_prefix() . 'paystack_webhook_logs')) {
|
|
$CI->db->query('CREATE TABLE `' . db_prefix() . 'paystack_webhook_logs` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`event` varchar(100) NOT NULL,
|
|
`payload` text,
|
|
`status` varchar(20) DEFAULT NULL,
|
|
`ip_address` varchar(45) DEFAULT NULL,
|
|
`date_created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `event` (`event`),
|
|
KEY `status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=' . $CI->db->char_set . ';');
|
|
}
|
|
|
|
// Add payment gateway options if they don't exist
|
|
$options = [
|
|
['name' => 'paystack_test_mode', 'value' => '1'],
|
|
['name' => 'paystack_live_secret_key', 'value' => ''],
|
|
['name' => 'paystack_live_public_key', 'value' => ''],
|
|
['name' => 'paystack_test_secret_key', 'value' => ''],
|
|
['name' => 'paystack_test_public_key', 'value' => ''],
|
|
['name' => 'paystack_webhook_secret', 'value' => '']
|
|
];
|
|
|
|
foreach ($options as $option) {
|
|
if (!get_option($option['name'])) {
|
|
add_option($option['name'], $option['value']);
|
|
}
|
|
} |