function espresso_display_2checkout($payment_data)
{
    extract($payment_data);
    // Setup class
    include_once '2checkout.php';
    echo '<!-- Event Espresso 2checkout Gateway Version ' . $twocheckout_gateway_version . '-->';
    $my2checkout = new TwoCo();
    // initiate an instance of the class
    global $org_options, $wpdb;
    //global $attendee_id;
    $twocheckout_settings = get_option('event_espresso_2checkout_settings');
    $twocheckout_id = empty($twocheckout_settings['2checkout_id']) ? 0 : $twocheckout_settings['2checkout_id'];
    $twocheckout_username = empty($twocheckout_settings['2checkout_username']) ? '' : $twocheckout_settings['2checkout_username'];
    //$image_url = $2checkout_settings['button_url'];
    $twocheckout_cur = empty($twocheckout_settings['currency_format']) ? 'USD' : $twocheckout_settings['currency_format'];
    $no_shipping = empty($twocheckout_settings['no_shipping']) ? '' : $twocheckout_settings['no_shipping'];
    $use_sandbox = empty($twocheckout_settings['use_sandbox']) ? false : true;
    if ($use_sandbox) {
        // Enable test mode if needed
        $my2checkout->enableTestMode();
    }
    $session_id = $wpdb->get_var("SELECT attendee_session FROM " . EVENTS_ATTENDEE_TABLE . " WHERE id='" . $attendee_id . "'");
    $sql = "SELECT ed.id, ed.event_name, ed.event_desc, ac.cost, ac.quantity FROM " . EVENTS_DETAIL_TABLE . " ed ";
    $sql .= " JOIN " . EVENTS_ATTENDEE_TABLE . " a ON ed.id=a.event_id ";
    $sql .= " JOIN " . EVENTS_ATTENDEE_COST_TABLE . " ac ON a.id=ac.attendee_id ";
    $sql .= " WHERE a.attendee_session='{$session_id}'";
    $tickets = $wpdb->get_results($sql, ARRAY_A);
    $item_num = 1;
    foreach ($tickets as $ticket) {
        $my2checkout->addField('c_prod_' . $item_num, $ticket['id'] . ',' . $ticket['quantity']);
        $my2checkout->addField('c_name_' . $item_num, $ticket['event_name']);
        $my2checkout->addField('c_description_' . $item_num, '');
        $my2checkout->addField('c_price_' . $item_num, $ticket['cost']);
        $item_num++;
    }
    $my2checkout->addField('id_type', '1');
    $my2checkout->addField('sid', $twocheckout_id);
    $my2checkout->addField('cart_order_id', rand(1, 100));
    if ($twocheckout_settings['force_ssl_return']) {
        $home = str_replace('http:', 'https:', home_url());
    } else {
        $home = home_url();
    }
    $my2checkout->addField('x_Receipt_Link_URL', str_replace('http:', 'https:', $home . '/?page_id=' . $org_options['return_url'] . '&id=' . $attendee_id . '&registration_id=' . $registration_id . '&event_id=' . $event_id . '&attendee_action=post_payment&form_action=payment&type=2co'));
    $my2checkout->addField('total', number_format($event_cost, 2, '.', ''));
    $my2checkout->addField('tco_currency', $twocheckout_cur);
    //Enable this function if you want to send payment notification before the person has paid.
    //This function is copied on the payment processing page
    //event_espresso_send_payment_notification($attendee_id, $txn_id, $amount_pd);
    //Decide if you want to auto redirect to your payment website or display a payment button.
    if (!empty($twocheckout_settings['bypass_payment_page']) && $twocheckout_settings['bypass_payment_page'] == 'Y') {
        $my2checkout->submitPayment();
        //Enable auto redirect to payment site
    } else {
        if (empty($twocheckout_settings['button_url'])) {
            if (file_exists(EVENT_ESPRESSO_GATEWAY_DIR . "2checkout/logo.png")) {
                $button_url = EVENT_ESPRESSO_GATEWAY_URL . "2checkout/logo.png";
            } else {
                $button_url = EVENT_ESPRESSO_PLUGINFULLURL . "gateways/2checkout/logo.png";
            }
        } elseif (file_exists($twocheckout_settings['button_url'])) {
            $button_url = $twocheckout_settings['button_url'];
        } else {
            //If no other buttons exist, then use the default location
            $button_url = EVENT_ESPRESSO_PLUGINFULLURL . "gateways/2checkout/logo.png";
        }
        $my2checkout->submitButton($button_url, '2checkout');
        //Display payment button
        wp_deregister_script('jquery.validate.pack');
    }
    if ($use_sandbox) {
        echo '<h3 style="color:#ff0000;" title="Payments will not be processed">' . __(' 2checkout.com Debug Mode Is Turned On', 'event_espresso') . '</h3>';
        $my2checkout->dump_fields();
        // for debugging, output a table of all the fields
    }
}
예제 #2
0
    // transaction id for daloradius
    $item_name = $_POST['item_name'];
    // name of the product that is puchased
    $quantity = $_POST['quantity'];
    // quantity
    $product_id = $_POST['product_id'];
    // Include the 2checkout library
    include_once 'include/merchant/TwoCo.php';
    // Create an instance of the authorize.net library
    $my2CO = new TwoCo();
    // Specify your 2CheckOut vendor id
    $my2CO->addField('sid', $sid);
    // Specify the order information
    $my2CO->addField('cart_order_id', $cart_order_id);
    $my2CO->addField('total', $total);
    $my2CO->addField('tco_currency', $tco_currency);
    $my2CO->addField('custom', $custom);
    $my2CO->addField('x_email_merchant', 'true');
    $my2CO->addField('c_name_1', $item_name);
    $my2CO->addField('product_id', $product_id);
    $my2CO->addField('c_prod1', $product_id);
    $my2CO->addField('quantity1', $quantity);
    // Specify the url where authorize.net will send the IPN
    $my2CO->addField('x_Receipt_Link_URL', $configValues['CONFIG_MERCHANT_IPN_URL_ROOT'] . "/" . $configValues['CONFIG_MERCHANT_IPN_URL_RELATIVE_DIR']);
    // Enable test mode if needed
    $my2CO->enableTestMode();
    // Let's start the train!
    $my2CO->submitPayment();
} else {
    echo "\n\n\t\t<html>\n\t\t<body>\n\t\t\terror: illegal action <br/>\n\t\t\t<a href='" . $configValues['CONFIG_MERCHANT_IPN_URL_ROOT'] . "'>return</a>to Return home...\n\t\t</body>\n\t\t</html>\t\n\n\t";
}
예제 #3
0
 public function pay_new($id = '', $gate_id = '')
 {
     if (intval($id) == 0 or intval($gate_id) == 0) {
         show_404();
     }
     $user = $this->db->get_where('users', array('id' => $id))->row();
     if (!$user or $user->status != 0) {
         show_404();
     }
     $group = $this->db->get_where('groups', array('id' => $user->group))->row();
     if (!$group) {
         show_404();
     }
     $gate = $this->db->get_where('gateways', array('id' => $gate_id))->row();
     if (!$gate) {
         show_404();
     }
     // get payment gateway settings
     $gate_conf = unserialize($gate->settings);
     // load payment libs
     include_once APPPATH . 'libraries/payment/PaymentGateway.php';
     // which payment system to use?
     if ($gate->name == 'paypal') {
         // Include the paypal library
         include_once APPPATH . 'libraries/payment/Paypal.php';
         // Create an instance of the paypal library
         $myPaypal = new Paypal();
         // Specify your paypal email
         $myPaypal->addField('business', $gate_conf['email']);
         // Specify the currency
         $myPaypal->addField('currency_code', $gate_conf['currency']);
         // Specify the url where paypal will send the user on success/failure
         $myPaypal->addField('return', site_url('user/pay_complete'));
         $myPaypal->addField('cancel_return', site_url('user/pay_cancel'));
         // Specify the url where paypal will send the IPN
         $myPaypal->addField('notify_url', site_url('payment/ipn/paypal'));
         // Specify the product information
         $myPaypal->addField('item_name', $this->startup->site_config['sitename'] . ' ' . $this->lang->line('user_controller_14'));
         $myPaypal->addField('amount', $group->price);
         $myPaypal->addField('item_number', rand(1, 1000) . '-' . $user->id);
         // Specify any custom value
         $myPaypal->addField('custom', base64_encode(serialize(array('user_id' => $user->id, 'type' => 'reg'))));
         // Enable test mode if needed
         if (defined('XUDEBUG') and XUDEBUG == true) {
             $myPaypal->enableTestMode();
         }
         // Let's start the train!
         $data['form'] = $myPaypal->submitPayment($this->lang->line('user_controller_paypal_submitpayment'));
     } else {
         if ($gate->name == 'authorize') {
             // Include the paypal library
             include_once APPPATH . 'libraries/payment/Authorize.php';
             // Create an instance of the authorize.net library
             $myAuthorize = new Authorize();
             // Specify your authorize.net login and secret
             $myAuthorize->setUserInfo($gate_conf['login'], $gate_conf['secret']);
             // Specify the url where authorize.net will send the user on success/failure
             $myAuthorize->addField('x_Receipt_Link_URL', site_url('user/pay_complete'));
             // Specify the url where authorize.net will send the IPN
             $myAuthorize->addField('x_Relay_URL', site_url('payment/ipn/authorize'));
             // Specify the product information
             $myAuthorize->addField('x_Description', $this->startup->site_config['sitename'] . ' ' . $this->lang->line('user_controller_14'));
             $myAuthorize->addField('x_Amount', $group->price);
             $myAuthorize->addField('x_Invoice_num', rand(1, 1000) . '-' . $user->id);
             $myAuthorize->addField('x_Cust_ID', base64_encode(serialize(array('user_id' => $user->id, 'type' => 'reg'))));
             // Enable test mode if needed
             if (defined('XUDEBUG') and XUDEBUG == true) {
                 $myAuthorize->enableTestMode();
             }
             // Let's start the train!
             $data['form'] = $myAuthorize->submitPayment($this->lang->line('user_controller_paypal_submitpayment'));
         } else {
             if ($gate->name = '2co') {
                 // Include the paypal library
                 include_once APPPATH . 'libraries/payment/TwoCo.php';
                 // Create an instance of the authorize.net library
                 $my2CO = new TwoCo();
                 // Specify your 2CheckOut vendor id
                 $my2CO->addField('sid', $gate_conf['vendor_id']);
                 // Specify the order information
                 $my2CO->addField('cart_order_id', rand(1, 1000) . '-' . $user->id);
                 $my2CO->addField('total', $group->price);
                 // Specify the url where authorize.net will send the IPN
                 $my2CO->addField('x_Receipt_Link_URL', site_url('payment/ipn/two_checkout'));
                 $my2CO->addField('tco_currency', $gate_conf['currency']);
                 $my2CO->addField('custom', base64_encode(serialize(array('user_id' => $user->id, 'type' => 'reg'))));
                 // Enable test mode if needed
                 if (defined('XUDEBUG') and XUDEBUG == true) {
                     $my2CO->enableTestMode();
                 }
                 // Let's start the train!
                 $data['form'] = $my2CO->submitPayment($this->lang->line('user_controller_paypal_submitpayment'));
             }
         }
     }
     $this->load->view($this->startup->skin . '/header', array('headerTitle' => $this->lang->line('user_controller_15')));
     $this->load->view($this->startup->skin . '/user/register/pay_new', array('ammount' => $group, 'user' => $id, 'form' => $data['form']));
     $this->load->view($this->startup->skin . '/footer');
 }