Quantcast
Channel: Active questions tagged paypal - Stack Overflow
Viewing all articles
Browse latest Browse all 471

How to add a variable to the form so that it is then added to the database (paypal script)?

$
0
0

I would like to add a variable to paypal payment form. Then I would like it to be added to the database . The variable is called "membre_id" (user ID) and is found in the $_SESSION['membre_id'].

Here's the code of form processing :

<?phprequire 'lib/init.php';$action = isset($_POST['action']) ? $_POST['action'] :        (isset($_GET['action']) ? $_GET['action'] : '');if ( !empty($action) ) {switch ( $action ) {

/***********************************************************************************************************************/

    case 'paypal_ipn':        require ('lib/vendor/ipnlistener.php');        $listener = new IpnListener();        try {            $verified = $listener->processIpn();            if ( $verified ) {                // parse our custom field data                $custom = post('custom');                if ( $custom ) {                    parse_str(post('custom'), $data);                } else {                    $data = array();                }                // pull out some values                $payment_gross = post('payment_gross');                $item_name = post('item_name');                // build customer data                $name = isset($data['name']) && $data['name'] ? $data['name'] : null;                $name_arr = explode('', trim($name));                $first_name = $name_arr[0];                $last_name = trim(str_replace($first_name, '', $name));                $email = isset($data['email']) && $data['email'] ? $data['email'] : null;                $description = $item_name ? $item_name : 'no description entered';                $address = isset($data['address']) && $data['address'] ? $data['address'] : null;                $city = isset($data['city']) && $data['city'] ? $data['city'] : null;                $state = isset($data['state']) && $data['state'] ? $data['state'] : null;                $zip = isset($data['zip']) && $data['zip'] ? $data['zip'] : null;                $country = isset($data['country']) && $data['country'] ? $data['country'] : null;                // check for invoice first                if ( isset($data['invoice_id']) && $data['invoice_id'] ) {                    $invoice = Model::factory('Invoice')->find_one($data['invoice_id']);                    $amount = $invoice->amount;                    $type = 'invoice';                    $description = $invoice->description;                // now check for item                } elseif ( isset($data['item_id']) && $data['item_id'] ) {                    $item = Model::factory('Item')->find_one($data['item_id']);                    $amount = $item->price;                    $type = 'item';                // check for input amount                } elseif ( $payment_gross ) {                    $amount = $payment_gross;                    $type = 'input';                // return error if none found                } else {                    $amount = 0;                    $type = '';                }                switch ( post('txn_type') ) {                    case 'web_accept':                        // save payment record                        $payment = Model::factory('Payment')->create();                        $payment->invoice_id = isset($invoice) ? $invoice->id : null;                        $payment->name = $name;                        $payment->email = $email;                        $payment->amount = $amount;                        $payment->description = isset($item) ? $item->name : $description;                        $payment->address = $address;                        $payment->city = $city;                        $payment->state = $state;                        $payment->zip = $zip;                        $payment->country = $country;                        $payment->type = $type;                        $payment->paypal_transaction_id = post('txn_id');                        $payment->save();                        // update paid invoice                        if ( isset($invoice) ) {                            $invoice->status = 'Paid';                            $invoice->date_paid = date('Y-m-d H:i:s');                            $invoice->save();                        }                        // build email values first                        $values = array('customer_name' => $payment->name,'customer_email' => $payment->email,'amount' => currency($payment->amount) . '<small>' . currencySuffix() . '</small>','description_title' => isset($item) ? 'Item' : 'Description','description' => $payment->description,'payment_method' => 'PayPal','transaction_id' => $payment->paypal_transaction_id,'url' => url(''),                        );                        email($config['email'], 'payment-confirmation-admin', $values, 'You\'ve received a new payment!');                        email($payment->email, 'payment-confirmation-customer', $values, 'Thank you for your payment to ' . $config['name']);                    break;                    case 'subscr_signup':                        try {                            $unique_subscription_id = uniqid();                            // save subscription record                            $subscription = Model::factory('Subscription')->create();                            $subscription->unique_id = $unique_subscription_id;                            $subscription->paypal_subscription_id = post('subscr_id');                            $subscription->name = $name;                            $subscription->email = $email;                            $subscription->address = $address;                            $subscription->city = $city;                            $subscription->state = $state;                            $subscription->zip = $zip;                            $subscription->country = $country;                            $subscription->description = isset($item) ? $item->name : $description;                            $subscription->price = post('amount3');                            $subscription->billing_day = date('j', strtotime(post('subscr_date')));                            $subscription->length = $config['subscription_length'];                            $subscription->interval = $config['subscription_interval'];                            $subscription->trial_days = $config['enable_trial'] ? $config['trial_days'] : null;                            $subscription->status = 'Active';                            $subscription->date_trial_ends = $config['enable_trial'] ? date('Y-m-d', strtotime('+' . $config['trial_days'] . ' days')) : null;                            $subscription->save();                            $trial = $subscription->date_trial_ends ? '<span style="color:#999999;font-size:16px">(Billing starts after your ' . $config['trial_days'] . ' day free trial ends)</span>' : '';                            $values = array('customer_name' => $name,'customer_email' => $email,'amount' => currency(post('amount3')) . '<small>' . currencySuffix() . '</small>' . $trial,'description_title' => isset($item) ? 'Item' : 'Description','description' => isset($item) ? $item->name : $description,'payment_method' => 'PayPal','subscription_id' => $subscription->paypal_subscription_id,'manage_url' => url('manage.php?subscription_id=' . $unique_subscription_id)                            );                            email($config['email'], 'subscription-confirmation-admin', $values, 'You\'ve received a new recurring payment!');                            email($email, 'subscription-confirmation-customer', $values, 'Thank you for your recurring payment to ' . $config['name']);                        } catch (Exception $e) {                        }                    break;                    case 'subscr_cancel':                        $subscription = Model::factory('Subscription')->where('paypal_subscription_id', post('subscr_id'))->find_one();                        if ( $subscription ) {                            $subscription->status = 'Canceled';                            $subscription->date_canceled = date('Y-m-d H:i:s');                            $subscription->save();                            // send subscription cancelation email now                            $values = array('customer_name' => $subscription->name,'customer_email' => $subscription->email,'amount' => currency($subscription->price) . '<small>' . currencySuffix() . '</small>','description' => $subscription->description,'payment_method' => 'PayPal','subscription_id' => $subscription->paypal_subscription_id                            );                            email($config['email'], 'subscription-canceled-admin', $values, 'A recurring payment has been canceled.');                            email($subscription->email, 'subscription-canceled-customer', $values, 'Your recurring payment to ' . $config['name'] . ' has been canceled.');                        }                    break;                    case 'subscr_eot':                        $subscription = Model::factory('Subscription')->where('paypal_subscription_id', post('subscr_id'))->find_one();                        if ( $subscription && $subscription->status == 'Active' ) {                            $subscription->status = 'Expired';                            $subscription->date_canceled = null;                            $subscription->save();                        }                    break;                }            } else {                die();            }        } catch (Exception $e) {            die();        }    break;

/***********************************************************************************************************************/

    case 'paypal_success':        go('index.php#status=paypal_success');    break;

/***********************************************************************************************************************/

    case 'paypal_subscription_success':        go('index.php#status=paypal_subscription_success');    break;

/***********************************************************************************************************************/

    case 'paypal_cancel':        msg('You canceled your PayPal payment, no payment has been made.', 'warning');        go('index.php');    break;

/***********************************************************************************************************************/

    case 'delete_payment':        if ( isset($_GET['id']) ) {            $payment = Model::factory('Payment')->find_one($_GET['id']);            $payment->delete();        }        msg('Payment has been deleted successfully.', 'success');        go('admin.php#tab=payments');    break;

/***********************************************************************************************************************/

    case 'delete_subscription':        if ( isset($_GET['id']) ) {            $subscription = Model::factory('Subscription')->find_one($_GET['id']);            $subscription->delete();        }        msg('Subscription has been deleted successfully.', 'success');        go('admin.php#tab=subscriptions');    break;

/***********************************************************************************************************************/

    case 'create_invoice':        if ( post('email') && post('amount') && post('description') ) {            $unique_invoice_id = uniqid();            $invoice = Model::factory('Invoice')->create();            $invoice->unique_id = $unique_invoice_id;            $invoice->email = post('email');            $invoice->description = post('description');            $invoice->amount = post('amount');            $invoice->number = post('number');            $invoice->status = 'Unpaid';            $invoice->date_due = post('date_due') ? date('Y-m-d', strtotime(post('date_due'))) : null;            $invoice->save();        }        $number = $invoice->number ? $invoice->number : $invoice->id();        if ( post('send_email') && post('send_email') ) {            $values = array('number' => $number,'amount' => currency($invoice->amount) . '<small>' . currencySuffix() . '</small>','description' => $invoice->description,'date_due' => !is_null($invoice->date_due) ? date('F jS, Y', strtotime($invoice->date_due)) : '<em>no due date set</em>','url' => url('?invoice_id=' . $unique_invoice_id)            );            email($invoice->email, 'invoice', $values, 'Invoice from ' . $config['name']);            $msg = ' and sent';        }        msg('Invoice has been created' . (isset($msg) ? $msg : '') . ' successfully.', 'success');        go('admin.php#tab=invoices');    break;

/***********************************************************************************************************************/

    case 'delete_invoice':        if ( isset($_GET['id']) ) {            $invoice = Model::factory('Invoice')->find_one($_GET['id']);            $invoice->delete();        }        msg('Invoice has been deleted successfully.', 'success');        go('admin.php#tab=invoices');    break;

/***********************************************************************************************************************/

    case 'add_item':        if ( post('name') && post('price') ) {            $item = Model::factory('Item')->create();            $item->name = post('name');            $item->price = post('price');            $item->save();        }        msg('Item has been added successfully.', 'success');        go('admin.php#tab=items');    break;

/***********************************************************************************************************************/

    case 'edit_item':        if ( post('id') && post('name') && post('price') ) {            $item = Model::factory('Item')->find_one(post('id'));            $item->name = post('name');            $item->price = post('price');            $item->save();        }        msg('Item has been edited successfully.', 'success');        go('admin.php#tab=items');    break;

/***********************************************************************************************************************/

    case 'delete_item':        if ( isset($_GET['id']) ) {            $item = Model::factory('Item')->find_one($_GET['id']);            $item->delete();        }        msg('Item has been deleted successfully.', 'success');        go('admin.php#tab=items');    break;

/***********************************************************************************************************************/

    case 'save_config':        if ( post('config') && is_array(post('config')) ) {            foreach ( post('config') as $key => $value ) {                $config = Model::factory('Config')->where('key', $key)->find_one();                if ( $config ) {                    $config->value = $value;                    $config->save();                }            }        }        msg('Your settings have been saved successfully.', 'success');        go('admin.php#tab=settings');    break;

/***********************************************************************************************************************/

    case 'login':        if (             post('admin_username') && post('admin_username') == $config['admin_username'] &&             post('admin_password') && post('admin_password') == $config['admin_password']        ) {            // login successful, set session            $_SESSION['admin_username'] = $config['admin_username'];        } else {            // login failed, set error message            msg('Login attempt failed, please try again.', 'danger');        }        go('admin.php');    break;

/***********************************************************************************************************************/

    case 'logout':        unset($_SESSION['admin_username']);        session_destroy();        session_start();        msg('You have been logged out successfully.', 'success');        go('admin.php');    break;

/***********************************************************************************************************************/

    case 'install':        $status = true;        $message = '';        try {            $db = new PDO('mysql:host=' . $config['db_host'] . ';dbname=' . $config['db_name'], $config['db_username'], $config['db_password']);            $sql = file_get_contents('lib/sql/install.sql');            $result = $db->exec($sql);        } catch (PDOException $e) {            $status = false;            $message = $e->getMessage();        }        $response = array('status' => $status,'message' => $message        );        header('Content-Type: application/json');        die(json_encode($response));    break;

/***********************************************************************************************************************/

    }  }

Viewing all articles
Browse latest Browse all 471

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>