Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

ATVUtah

Members
  • Content count

    54
  • Joined

  • Last visited

Everything posted by ATVUtah

  1. ATVUtah

    Official PayPal IPN Support Thread

    I have a question to do with the product inventory update portion of this module. As I understood Terra to say, and someone correct me if I'm wrong, this PayPal IPN Module does NOT update the product inventory or products sold list until after the payment is completed. I remember reading that when deleting unpaid orders showing "Preparing [PayPal IPN]", after waiting a day or so, not to check the box that says "Restock product quantity" because the product was never actualy removed from the inventory count. So my Question is: If a customer places an order and for what ever reason he cant get PayPal to process the payment, then calls me with a credit card number and pays for the order; If I go to the order details and update it's status from "Preparing [PayPal IPN]" to Pending, Processing, or any other status, is the inventory count updated for the products? Or will I need to manualy update the inventory count?
  2. ATVUtah

    Official PayPal IPN Support Thread

    It just means that for one reason or another the IPN (instant payment notification) from PayPal did not get back to your clients server when the payment was completed. Remember this is the Internet and stuff vanishes all the time. That's why most systems have a verification process to be sure a message was sent and received. In this particular case that doesn't happen. I see this occasionally in my store. As previously stated your client should be comparing his PayPal account with his orders just to make sure things are not missed.
  3. ATVUtah

    Official PayPal IPN Support Thread

    I know for a fact my following question has been discussed but with over 173 pages of discussion of this module I'll be danged if I can find it. When my customers want to order and item and have it shipped to a different address than the Credit Card Billing address, PayPal (or the IPN module) is putting their shipping address in the "Billing address section" of the payment form (on PayPals site) and will not let the customer select another address, change the one on the form, or add a "shipping address" As I said I remember a discussion on how to allow them to use a billing and a ship to address but can't find it. Also before anyone jumps in about the PayPal rules on "confirmed" address, etc... I am fully aware of them and I accept the risk of shipping to an address other than the credit card billing confirmed address as this has never been an issue with the products I sell. Q: Where do I set the variable to allow the customer to have a shipping address and a billing address?
  4. ATVUtah

    Official PayPal IPN Support Thread

    OK ignore my ramblings :'( it would appear USPS was having difficulties and only returning one postage rate/option and that was Express mail. :blush: The paypal_ipn is now working awesome. :thumbsup:
  5. ATVUtah

    Official PayPal IPN Support Thread

    After installing paypal_ipn.php,v 2.3.3.0 11/17/2007 I also just discovered the original "Free Shipping For Orders Over a set amount" in the "Order Total Modules" no longer functions properly. I made no changes to that section either. It appears to be adding in the Express mail shipping charges before deciding if "free Shipping" should apply to the order. I am now wondering if the new paypal_ipn.php,v 2.3.3.0 11/17/2007 is compatible with the older version of USPS Shipping Methods I have installed which fetches the postage rates. (usps.php,v 1.47 2003/04/08) Does anyone know if there are any compatibility issues with these two modules? (paypal_ipn and usps.php)
  6. ATVUtah

    Official PayPal IPN Support Thread

    I seem to be having an issue with the US Postal shipping charges calculations after installing paypal_ipn.php,v 2.3.3.0 11/17/2007. Postage was working OK with a previous 1.x version and I've changed nothing with the shipping or postage sections of the shopping cart. Problem: The customer chooses US Priority mail in the "Shipping Method" section, then chooses PayPal as the payment option on the next page. But when they are then moved to the "Order Confirmation" page the total now shows the much higher "Express" mail postage and charges, not the choice they made. No matter what postage option they chose before.
  7. ATVUtah

    Official PayPal IPN Support Thread

    Backup and start from the beggining of Terras install guide in the latest version of this contrib download. You have missed a step or not uploaded a nessesary something.
  8. ATVUtah

    Official PayPal IPN Support Thread

    In the Admin section of OSC yes.
  9. ATVUtah

    Official PayPal IPN Support Thread

    Oh now come on Terra women are supposed to be able to multitask.... men only have one track minds. :-" Now back to the problems at hand. I am going to move a copy of my shop to a new server and break everything most likely. Any good plans on how to do this? Also Terra can you email me the debug file you created for the IPN module?
  10. ATVUtah

    Official PayPal IPN Support Thread

    The address they check for the eligibility is the one the customer enters as "His Billing address" on the credit card form. It has nothing to do with what OSC passes to PayPal. In fact last time I heard this module cant automatically pass the address to PayPal. I discovered if you want to use PayPal's shipping label system, and be sure to ship to a verified address, because your not getting a "shipping address" from the buyer at PayPal, change the line at or about 328 in catalog/includes/modules/payment/paypal_ipn.php from $parameters['no_shipping'] = '1'; To $parameters['no_shipping'] = '2'; This will force the buyer re-enter their shipping address at the PayPal website. With the parameter set at 1 it is optional and NO ONE fills out optional information anymore. I've had maybe 2 customers complain it's a pain for the them to have to enter an address again, but it is just another way to confirm they are who they claim to be and provides the needed shipping address information that unfortunately the osCommerce PayPal IPN Module does not send to PayPal. One thread here said it was because of a security issue. I don't know if that's fact or fiction. But this fixed my issues with both the "confirmed address" and shipping label system not getting an address I could use. Also in your PayPal profile you need to set the don't accept payments without a confirmed address option or you can still get some payments that are ineligible.
  11. ATVUtah

    Official PayPal IPN Support Thread

    Seller protection is based on your account standings and the information provided by the customer about their billing and credit card address. It is not tied to the OSC module in any way that I know of. If you accept payments from buyers with "unconfirmed" addresses, or have had a certain number of complaints and a few other reasons you will see your not eligible. :( Myself I have my account to not accept payments from buyers without a "confirmed adderess" and only ship to their "confirmed adderess". I had to tweek the IPN module to pass the peramiter that insists the buyer give a shipping address as well as a billing address on Paypal (they only enter it once if it's the same). Seller Protection Policy -------------------------------------------------------------------------------- What does it mean if a transaction is Seller Protection Policy eligible? If a transaction is Seller Protection Policy eligible, you will be protected from chargebacks due to fraud when you follow these guidelines: Have a Verified Business or Premier account Ship to the address on the Transaction Details page Provide timely shipment Retain reasonable proof of delivery that can be tracked online Ship tangible goods What does it mean if a transaction is Seller Protection Policy ineligible? If a transaction is ineligible for coverage under the Seller Protection Policy, PayPal is unable to offer protection against fraudulent chargebacks. In such cases, we advise that you ship to the buyer's Confirmed Address whenever possible. Shipping to a buyer's Confirmed Address helps ensure that you are shipping to the person who set up the PayPal account. It is important to note, though, that users in some countries and regions do not have the ability to confirm their addresses. When a user is unable to provide a Confirmed Address, you may want to take special care when shipping packages by obtaining proof of delivery or tracking information. Confirmed Addresses -------------------------------------------------------------------------------- What is a Confirmed Address? A buyer's Confirmed Address is checked against the credit card billing address maintained by his or her credit card company. How is address confirmation useful? Address confirmation is useful because it provides a way for a seller to verify a buyer's identity. Shipment to a confirmed address, however, is not a requirement for coverage under the Seller Protection Policy since not all PayPal users are able to confirm their addresses. If a transaction is eligible for coverage under the Seller Protection Policy, a seller must ship to the address found on the Transaction Details page (regardless of whether that address is confirmed or not). For transactions that are ineligible for coverage under the Seller Protection Policy, we recommend that a seller ships to a buyer's Confirmed Address. What is an Unconfirmed Address? An Unconfirmed Address is any address which is not associated with a credit card or which has not been verified by PayPal. Most non-U.S. addresses cannot be confirmed at this time because many international credit card platforms do not support methods to do so.
  12. ATVUtah

    Official PayPal IPN Support Thread

    Terra here is the code from /catalog/includes/modules/payment/paypal_ipn.php (function before_process()) begins at line 416 in my file. The other bug besides the email problem is that orders processed by the PayPal IPN module doesnt update the inventory. Check or money order orders work perfectly so I'm fairly certain the database is ok. I'm suspecting it's all related somehow. Orders are taken and added to the database payments are registered and the order status changes to "pending" but then the emails blow up and the stocks not updated so I cant use the reorder or most reports :( By the way register_globals is on on my server. The PayPal profile setting are all basically set to the defaults except I add the sales tax there and I have my banner on the payment pages. function before_process() { global $customer_id, $order, $sendto, $billto, $payment, $languages_id, $currencies, $cart, $cart_PayPal_IPN_ID; global $$payment; include(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; $order_totals = $order_total_modules->process(); $order_id = substr($cart_PayPal_IPN_ID, strpos($cart_PayPal_IPN_ID, '-')+1); $sql_data_array = array('orders_id' => $order_id, 'orders_status_id' => $order->info['order_status'], 'date_added' => 'now()', 'customer_notified' => (SEND_EMAILS == 'true') ? '1' : '0', 'comments' => $order->info['comments']); tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array); // initialized for the email confirmation $products_ordered = ''; $subtotal = 0; $total_tax = 0; for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { // Stock Update - Joao Correia if (STOCK_LIMITED == 'true') { if (DOWNLOAD_ENABLED == 'true') { $stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename FROM " . TABLE_PRODUCTS . " p LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa ON p.products_id=pa.products_id LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad ON pa.products_attributes_id=pad.products_attributes_id WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"; // Will work with only one option for downloadable products // otherwise, we have to build the query dynamically with a loop $products_attributes = $order->products[$i]['attributes']; if (is_array($products_attributes)) { $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'"; } $stock_query = tep_db_query($stock_query_raw); } else { $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); } if (tep_db_num_rows($stock_query) > 0) { $stock_values = tep_db_fetch_array($stock_query); // do not decrement quantities if products_attributes_filename exists if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) { $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty']; } else { $stock_left = $stock_values['products_quantity']; } tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) { tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); } } } // Update products_ordered (for bestsellers list) tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); //------insert customer choosen option to order-------- $attributes_exist = '0'; $products_ordered_attributes = ''; if (isset($order->products[$i]['attributes'])) { $attributes_exist = '1'; for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) { if (DOWNLOAD_ENABLED == 'true') { $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad on pa.products_attributes_id=pad.products_attributes_id where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'"; $attributes = tep_db_query($attributes_query); } else { $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'"); } $attributes_values = tep_db_fetch_array($attributes); $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name']; } } //------insert customer choosen option eof ---- $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']); $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty']; $total_cost += $total_products_price; $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n"; } // lets start with the email confirmation $email_order = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $order_id . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $order_id, 'SSL', false) . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n"; if ($order->info['comments']) { $email_order .= tep_db_output($order->info['comments']) . "\n\n"; } $email_order .= EMAIL_TEXT_PRODUCTS . "\n" . EMAIL_SEPARATOR . "\n" . $products_ordered . EMAIL_SEPARATOR . "\n"; for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) { $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n"; } if ($order->content_type != 'virtual') { $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . EMAIL_SEPARATOR . "\n" . tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n"; } $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" . EMAIL_SEPARATOR . "\n" . tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n"; if (is_object($$payment)) { $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . EMAIL_SEPARATOR . "\n"; $payment_class = $$payment; $email_order .= $payment_class->title . "\n\n"; if ($payment_class->email_footer) { $email_order .= $payment_class->email_footer . "\n\n"; } } tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); // send emails to other people if (SEND_EXTRA_ORDER_EMAILS_TO != '') { tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } // load the after_process function from the payment modules $this->after_process(); $cart->reset(true); // unregister session variables used during checkout tep_session_unregister('sendto'); tep_session_unregister('billto'); tep_session_unregister('shipping'); tep_session_unregister('payment'); tep_session_unregister('comments'); tep_session_unregister('cart_PayPal_IPN_ID'); tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL')); } 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_IPN_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { $check_query = tep_db_query("select orders_status_id from " . TABLE_ORDERS_STATUS . " where orders_status_name = 'Preparing [PayPal IPN]' limit 1"); if (tep_db_num_rows($check_query) < 1) { $status_query = tep_db_query("select max(orders_status_id) as status_id from " . TABLE_ORDERS_STATUS); $status = tep_db_fetch_array($status_query); $status_id = $status['status_id']+1; $languages = tep_get_languages(); foreach ($languages as $lang) { tep_db_query("insert into " . TABLE_ORDERS_STATUS . " (orders_status_id, language_id, orders_status_name) values ('" . $status_id . "', '" . $lang['id'] . "', 'Preparing [PayPal IPN]')"); } } else { $check = tep_db_fetch_array($check_query); $status_id = $check['orders_status_id']; } 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 IPN Module', 'MODULE_PAYMENT_PAYPAL_IPN_STATUS', 'False', 'Do you want to accept PayPal IPN 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_IPN_ID', '', 'The e-mail address to use for the PayPal IPN 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_IPN_CURRENCY', 'Selected Currency', 'The currency to use for 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_IPN_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_IPN_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 Preparing Order Status', 'MODULE_PAYMENT_PAYPAL_IPN_PREPARE_ORDER_STATUS_ID', '" . $status_id . "', 'Set the status of prepared orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', 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 PayPal Acknowledged Order Status', 'MODULE_PAYMENT_PAYPAL_IPN_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())"); 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 Type', 'MODULE_PAYMENT_PAYPAL_IPN_TRANSACTION_TYPE', 'Per Item', 'Send individual items to PayPal or aggregate all as one total item?', '6', '6', 'tep_cfg_select_option(array(\'Per Item\',\'Aggregate\'), ', 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 ('Gateway Server', 'MODULE_PAYMENT_PAYPAL_IPN_GATEWAY_SERVER', 'Testing', 'Use the testing (sandbox) or live gateway server for transactions?', '6', '6', 'tep_cfg_select_option(array(\'Testing\',\'Live\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Page Style', 'MODULE_PAYMENT_PAYPAL_IPN_PAGE_STYLE', '', 'The page style to use for the transaction procedure (defined at your PayPal Profile page)', '6', '4', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Debug E-Mail Address', 'MODULE_PAYMENT_PAYPAL_IPN_DEBUG_EMAIL', '', 'All parameters of an Invalid IPN notification will be sent to this email address if one is entered.', '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 ('Enable Encrypted Web Payments', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_STATUS', 'False', 'Do you want to enable Encrypted Web 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 ('Your Private Key', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_PRIVATE_KEY', '', 'The location of your Private Key to use for signing the data. (*.pem)', '6', '4', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Your Public Certificate', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_PUBLIC_KEY', '', 'The location of your Public Certificate to use for signing the data. (*.pem)', '6', '4', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('PayPals Public Certificate', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_PAYPAL_KEY', '', 'The location of the PayPal Public Certificate for encrypting the data.', '6', '4', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Your PayPal Public Certificate ID', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_CERT_ID', '', 'The Certificate ID to use from your PayPal Encrypted Payment Settings Profile.', '6', '4', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Working Directory', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_WORKING_DIRECTORY', '', 'The working directory to use for temporary files. (trailing slash needed)', '6', '4', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('OpenSSL Location', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_OPENSSL', '/usr/bin/openssl', 'The location of the openssl binary file.', '6', '4', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_PAYPAL_IPN_STATUS', 'MODULE_PAYMENT_PAYPAL_IPN_ID', 'MODULE_PAYMENT_PAYPAL_IPN_CURRENCY', 'MODULE_PAYMENT_PAYPAL_IPN_ZONE', 'MODULE_PAYMENT_PAYPAL_IPN_PREPARE_ORDER_STATUS_ID', 'MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID', 'MODULE_PAYMENT_PAYPAL_IPN_GATEWAY_SERVER', 'MODULE_PAYMENT_PAYPAL_IPN_TRANSACTION_TYPE', 'MODULE_PAYMENT_PAYPAL_IPN_PAGE_STYLE', 'MODULE_PAYMENT_PAYPAL_IPN_DEBUG_EMAIL', 'MODULE_PAYMENT_PAYPAL_IPN_SORT_ORDER', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_STATUS', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_PRIVATE_KEY', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_PUBLIC_KEY', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_PAYPAL_KEY', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_CERT_ID', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_WORKING_DIRECTORY', 'MODULE_PAYMENT_PAYPAL_IPN_EWP_OPENSSL'); } } ?>
  13. ATVUtah

    Official PayPal IPN Support Thread

    Terra is it possible to remove the entire email function from this OSC PayPal module? Mine still insists on putting "ser" in place of the order number and now starting last week most of the confirmation emails sent (if one is sent at all) are being truncated right after the point where the order number should be in the email. This in turn looks bad to the customer. I cant just turn off sending emails in OSC because then no emails would be sent for the cash/money order payment method which I also use. Since the paypal side works perfectly and PayPal sends the customer an email I don't need this module to send one. I'm not that sharp on PHP so I'm not sure just how much code or in which file I need to remove to take out the email function.
  14. ATVUtah

    Official PayPal IPN Support Thread

    As per the PayPal TOS your not allowed to charge an extra fee to use PayPal. If they catch you they will revoke your account. The contribution you point to violates the PayPal TOS. https://www.paypal.com/us/cgi-bin/webscr?cm...policy_payments
  15. ATVUtah

    Official PayPal IPN Support Thread

    That all well and good IF the PayPal IPN sends an email. Mine still only does part of the time and I cant make it put the correct order number in the emails when it does. It sill put "ser" as the order number. Any fresh ideas? Anyone?
  16. ATVUtah

    Official PayPal IPN Support Thread

    See page 106 of the OSC documentation.pdf Reset The Order ID Value New orders that are made with new osCommerce installations start with the ID of 1. This value can be reset so that new orders are assigned an ID from a specific starting range, for example from 1000. With PHPMyadmin the following SQL query needs to be executed with MySQL: alter table orders auto_increment = 1000; (Modify the number to meet your needs. Some value above your current last order ID number) The above query will assign an ID of 1000 to the next order made. The ID can be set to any number, however as the orders_id field in the database is of type signed integer, the ID must exist in the following range: -2147483648 to 2147483647 Higher ID numbers can be achieved by converting the orders_id field type from signed integer to unsigned integer, which allows the following range to be used: 0 to 4294967295
  17. ATVUtah

    Official PayPal IPN Support Thread

    Join the club. I've been chasing this bug since January.
  18. ATVUtah

    Official PayPal IPN Support Thread

    I asked PayPal development support directly about this and the answer was an emphatic NO. They want to push the "you should have an account" feeling at every opportunity. If anyone has found a solution I'd love to hear about it as well. 99% of my customers don't have PayPal accounts nor do they seem to want them.
  19. ATVUtah

    Official PayPal IPN Support Thread

    Well I spoke too soon. 3 orders were fine yesterday then the "ser" in place of the order number began appearing in the order confirmation emails . It seems to have now sent an order confirmation email for one out of 4 orders.
  20. ATVUtah

    Official PayPal IPN Support Thread

    Well it's always the simplest of things. I may have found my problem. A missing semicolon way back up in the code. I'm not sure when or how it went missing but after fixing it 3 orders today have worked fine. We will see if that was it after a few more. I got Ulta Compare and did a line by line, character by character compare with the original download files of the PayPal IPN and all I found other than the suggested edit from Terra and the shipping parameter change was a single missing comma in a section for a java script validation... arrgggggggg
  21. ATVUtah

    Official PayPal IPN Support Thread

    Everything I have matched what you have here.
  22. ATVUtah

    Official PayPal IPN Support Thread

    First any email receipt sending problems I am having I can replicate with a clean install of the PayPal IPN module. The order number sent to PayPal is correct. and it is correct in the database and on the order pages in the Admin section. It is only when the IPN module sends an email to the customer (less than 20% of the time) that the order number shows up as "ser" As for what modifications I have made: This will force the buyer re-enter their shipping address at the PayPal website. With the parameter set at 1 it is optional. Some complain it's a pain for the customer to have to enter an address again, but it is another way to confirm they are who they claim to be and provides the needed shipping address information that unfortunately the osCommerce PayPal IPN Module does not send to PayPal in order to be able to use the shipping label section of PayPal. Now since the osC ipn module didn't pass sales tax on to PayPal, I just let PayPal add it on. In my PayPal Preferences I set the tax rate for my state and PayPal does the rest. My tax charges always comes out correct after I forced the buyer to reenter his shipping address into the PayPal site(see above). As I said before this also always gives me the shipping address so I can use Paypal's shipping system. Some buyers complain they have to enter their address twice but I tell them it's for their own security and they say "oh... OK that's cool then" If I set the PayPal IPN to AGGREGATE total the customer NEVER get an email confirming what they ordered just an email with a total. Also I see no items listed if I try and use the PayPal shipping/Packing slip, only a total. IF I set MOVE TAX TO TOTAL then my customers are charged tax twice. My assumption is if I can find where the order number is being corrupted and changed to "ser" it will most likely fix all the problems.
  23. ATVUtah

    Official PayPal IPN Support Thread

    Well I made these changes and see no change in the way the module works. It still only sends the customer a confirmation email less than 20% of the time and it doesn't update the products sold list nor subtract them from the inventory so the reorder feature doesn't work either. When it does send an email to the customer the oerder number is always "ser"
  24. ATVUtah

    Official PayPal IPN Support Thread

    Should the Auto-return be an SSL URL? ie.. https://www.mycart.com/catalog/checkout_process.php
  25. ATVUtah

    Official PayPal IPN Support Thread

    I think it's been removed because it's broken. I use the osCommerce PayPal IPN Module v1.1 For 2.2MS2 yet it doesn't update my inventory, it fails to send a confirmation email to the customer about 80% of the time. It fails to update the "products sold report" and the developers refuse to answer questions and posts in this the "Official PayPal IPN Support Thread" For lack of time I have not tried any other PayPal contributions. I have a feeling they are trying to push us to use another contribution without actually admitting they screwed up and wrote a "BAD" contribution or even trying to fix it. If I am wrong I challenge them to prove me wrong by fixing the thing or at the bare minimum answering people questions and concerns about it! I however know from watching this thread they don't give a shit about our questions, or problems with this contribution. If I vanish from the forums members list for stating this you will know I'm right!
×