Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Received a payment via Paypal


poster

Recommended Posts

Posted

no records of it in the oscommerce. Any idea what's happening? This is the first order I got. Do I have to configure something else?

Posted

Hello

 

the code below will help you,

this code is used to show what products where ordered at your shop in the paypal site, because without this if someone pays by paypal and does not hit the continue button on the checkout page, you will get the money, but you will have no idea what they ordered. ( its basicly not to make you look stupid)

 

Change your entire paypal.php page to this,

located in \catalog\includes\modules\payment

 

 

<?php

/*

  $Id: paypal.php,v 1.39 2003/01/29 19:57:15 hpdl Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  Copyright ? 2003 osCommerce

 

  Released under the GNU General Public License

*/

 

  class paypal {

    var $code, $title, $description, $enabled;

 

// class constructor

    function paypal() {

      global $order;

 

      $this->code = 'paypal';

      $this->title = MODULE_PAYMENT_PAYPAL_TEXT_TITLE;

      $this->description = MODULE_PAYMENT_PAYPAL_TEXT_DESCRIPTION;

      $this->sort_order = MODULE_PAYMENT_PAYPAL_SORT_ORDER;

      $this->enabled = ((MODULE_PAYMENT_PAYPAL_STATUS == 'True') ? true : false);

 

      if ((int)MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID > 0) {

        $this->order_status = MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID;

      }

 

      if (is_object($order)) $this->update_status();

 

      $this->form_action_url = 'https://secure.paypal.com/cgi-bin/webscr';

    }

 

// class methods

    function update_status() {

      global $order;

 

      if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAYPAL_ZONE > 0) ) {

        $check_flag = false;

        $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PAYPAL_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");

        while ($check = tep_db_fetch_array($check_query)) {

          if ($check['zone_id'] < 1) {

            $check_flag = true;

            break;

          } elseif ($check['zone_id'] == $order->billing['zone_id']) {

            $check_flag = true;

            break;

          }

        }

 

        if ($check_flag == false) {

          $this->enabled = false;

        }

      }

    }

 

    function javascript_validation() {

      return false;

    }

 

    function selection() {

      return array('id' => $this->code,

                  'module' => $this->title);

    }

 

    function pre_confirmation_check() {

      return false;

    }

 

    function confirmation() {

      return false;

    }

 

    function process_button() {

global $order, $currencies, $currency;

 

if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {

$my_currency = $currency;

} else {

$my_currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);

}

if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {

$my_currency = 'USD';

}

$xx = '';

for ($i=0; $i<sizeof($order->products); $i++) {

$xx .= $order->products[$i]['qty'] . '-' . ($order->products[$i]['name']) . '**';

}

$process_button_string = tep_draw_hidden_field('cmd', '_xclick') .

tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .

tep_draw_hidden_field('item_name', STORE_NAME . ' ' . $xx) .

tep_draw_hidden_field('amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .

tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .

tep_draw_hidden_field('currency_code', $my_currency) .

tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .

tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

 

return $process_button_string;

}

 

 

    function before_process() {

      return false;

    }

 

    function after_process() {

      return false;

    }

 

    function output_error() {

      return false;

    }

 

    function check() {

      if (!isset($this->_check)) {

        $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PAYPAL_STATUS'");

        $this->_check = tep_db_num_rows($check_query);

      }

      return $this->_check;

    }

 

    function install() {

      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable PayPal Module', 'MODULE_PAYMENT_PAYPAL_STATUS', 'True', 'Do you want to accept PayPal payments?', '6', '3', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('E-Mail Address', 'MODULE_PAYMENT_PAYPAL_ID', '[email protected]', 'The e-mail address to use for the PayPal service', '6', '4', now())");

      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Transaction Currency', 'MODULE_PAYMENT_PAYPAL_CURRENCY', 'Selected Currency', 'The currency to use for credit card transactions', '6', '6', 'tep_cfg_select_option(array(\'Selected Currency\',\'Only USD\',\'Only CAD\',\'Only EUR\',\'Only GBP\',\'Only JPY\'), ', now())");

      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_PAYPAL_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");

      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_PAYPAL_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");

      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

    }

 

    function remove() {

      tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");

    }

 

    function keys() {

      return array('MODULE_PAYMENT_PAYPAL_STATUS', 'MODULE_PAYMENT_PAYPAL_ID', 'MODULE_PAYMENT_PAYPAL_CURRENCY', 'MODULE_PAYMENT_PAYPAL_ZONE', 'MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID', 'MODULE_PAYMENT_PAYPAL_SORT_ORDER');

    }

  }

?>

 

 

 

post back and let me know how it goes,

 

digi

*Outlined in chalk everone looks the same*

 

Currently useing OSC 2.2 MS1

running on Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_jk/1.2.0 mod_perl/1.26 PHP/4.3.3 FrontPage/5.0.2 mod_ssl/2.8.12 OpenSSL/0.9.6b

Posted

Hi Digi,

what exactly does this do and how diferent is it from Paypal ip v2.6a? I need a solution too? But dont want to screw up anything.

 

Thanks

Posted

never checked paypal ip v2.6a, this will fix your problem, dont worrie nothing will get screwed.

*Outlined in chalk everone looks the same*

 

Currently useing OSC 2.2 MS1

running on Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_jk/1.2.0 mod_perl/1.26 PHP/4.3.3 FrontPage/5.0.2 mod_ssl/2.8.12 OpenSSL/0.9.6b

Posted

?what does the code you posted change? What does it do differently?

Posted
this code is used to show what products where ordered at your shop in the paypal site, because without this if someone pays by paypal and does not hit the continue button on the checkout page, you will get the money, but you will have no idea what they ordered.

if you read my post you can clearly see that I have already explained this,

*Outlined in chalk everone looks the same*

 

Currently useing OSC 2.2 MS1

running on Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_jk/1.2.0 mod_perl/1.26 PHP/4.3.3 FrontPage/5.0.2 mod_ssl/2.8.12 OpenSSL/0.9.6b

Posted

Rather than using this workaround, a much better idea is to use the PayPal IPN module by Pablo (version .981 I believe). This problem has been discussed over and over again on the forums - for more information, search for:

+paypal +ipn

Chris Dunning

osCommerce, Contributions Moderator Team

 

Please do not send me PM! I do not read or answer these often. Use the email button instead!

 

I do NOT support contributions other than my own. Emails asking for support on other people's contributions will be ignored. Ask in the forum or contact the contribution author directly.

Posted

I got this mod (PayPal IPN module by Pablo version .981) but one question what is the return addy I need to put in the return on Paypal

Posted

99% of the time it guesses correctly. The filename is paypal_notify.php, in whatever directory you put it in. So, if your store is in the root directory (so that www.domain.com goes directly to your store) then it's:

http://www.domain.com/paypal_notify.php

If your store is in the /catalog/ directory then it's:

http://www.domain.com/catalog/paypal_notify.php

 

Adjust to your particular situation.

Chris Dunning

osCommerce, Contributions Moderator Team

 

Please do not send me PM! I do not read or answer these often. Use the email button instead!

 

I do NOT support contributions other than my own. Emails asking for support on other people's contributions will be ignored. Ask in the forum or contact the contribution author directly.

Posted

BLAH!! I uninstalled it.... It might be a great module but the documentation seems lacking for those who are new to osC and need a revision imho...

Posted
99% of the time it guesses correctly. The filename is paypal_notify.php, in whatever directory you put it in. So, if your store is in the root directory (so that www.domain.com goes directly to your store) then it's:

http://www.domain.com/paypal_notify.php

If your store is in the /catalog/ directory then it's:

http://www.domain.com/catalog/paypal_notify.php

 

Adjust to your particular situation.

Yes thank you but I also experianced a problem with the test as it gave errors... but would still send a blank e-mail and show up in the transactions...

 

I am just installing all the mods I can find that sound like they would be useful...

 

I know this has a valid use but what is the advantages of useing PP IPN?

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...