paystack/install.php
2025-01-19 12:18:55 +00:00

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']);
}
}