playcraft Posted January 4, 2016 Share Posted January 4, 2016 Shipping address line 2 is omitted in ext modules express_payflow.php file. (http://addons.oscommerce.com/info/5657) After line 182: $ship_address = tep_db_prepare_input($response_array['SHIPTOSTREET']); add: $ship_address2 = tep_db_prepare_input($response_array['SHIPTOSTREET2']); Change line 208: From: $check_query = tep_db_query("select address_book_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and entry_firstname = '" . tep_db_input($ship_firstname) . "' and entry_lastname = '" . tep_db_input($ship_lastname) . "' and entry_street_address = '" . tep_db_input($ship_address) . "' and entry_postcode = '" . tep_db_input($ship_postcode) . "' and entry_city = '" . tep_db_input($ship_city) . "' and (entry_state = '" . tep_db_input($ship_zone) . "' or entry_zone_id = '" . (int)$ship_zone_id . "') and entry_country_id = '" . (int)$ship_country_id . "' limit 1"); To: $check_query = tep_db_query("select address_book_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and entry_firstname = '" . tep_db_input($ship_firstname) . "' and entry_lastname = '" . tep_db_input($ship_lastname) . "' and entry_street_address = '" . tep_db_input($ship_address) . "' and entry_suburb = '" . tep_db_input($ship_address2) . "' and entry_postcode = '" . tep_db_input($ship_postcode) . "' and entry_city = '" . tep_db_input($ship_city) . "' and (entry_state = '" . tep_db_input($ship_zone) . "' or entry_zone_id = '" . (int)$ship_zone_id . "') and entry_country_id = '" . (int)$ship_country_id . "' limit 1"); Add after line 217: 'entry_suburb' => $ship_address2, Add after line 416: $params['SHIPTOSTREET2'] = urlencode($order->delivery['suburb']); Quote Link to comment Share on other sites More sharing options...
Guest Posted January 4, 2016 Share Posted January 4, 2016 I was just in the middle of testing this addon. @@playcraft is correct and I confirmed this issue with PP Sandbox. I also noticed that the shipping methods are renamed and when entered into order_totals, the the title is different than the main osc system. These are the changes I made to resolve. Some are the same as @@playcraft. $sendto = array('firstname' => '', 'lastname' => '', 'company' => '', 'street_address' => $HTTP_POST_VARS['SHIPTOSTREET'], 'suburb' => (isset($HTTP_POST_VARS['SHIPTOSTREET2']) ? $HTTP_POST_VARS['SHIPTOSTREET2'] : ''), 'postcode' => $HTTP_POST_VARS['SHIPTOZIP'], 'city' => $HTTP_POST_VARS['SHIPTOCITY'], 'zone_id' => '', 'zone_name' => $HTTP_POST_VARS['SHIPTOSTATE'], 'country_id' => '', 'country_name' => $HTTP_POST_VARS['SHIPTOCOUNTRY'], 'country_iso_code_2' => '', 'country_iso_code_3' => '', 'address_format_id' => ''); $log_sane['SHIPTOSTREET'] = $HTTP_POST_VARS['SHIPTOSTREET']; $log_sane['SHIPTOSTREET2'] = (isset($HTTP_POST_VARS['SHIPTOSTREET2']) ? $HTTP_POST_VARS['SHIPTOSTREET2'] : ''); // check if paypal shipping address exists in the address book if ( OSCOM_APP_PAYPAL_GATEWAY == '1' ) { // PayPal $ship_firstname = tep_db_prepare_input(substr($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTONAME'], 0, strpos($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTONAME'], ' '))); $ship_lastname = tep_db_prepare_input(substr($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTONAME'], strpos($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTONAME'], ' ')+1)); $ship_address = tep_db_prepare_input($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTOSTREET']); $ship_address2 = (isset($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTOSTREET2']) ? tep_db_prepare_input($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTOSTREET2']) : ''); $ship_city = tep_db_prepare_input($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTOCITY']); $ship_zone = tep_db_prepare_input($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTOSTATE']); $ship_postcode = tep_db_prepare_input($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTOZIP']); $ship_country = tep_db_prepare_input($appPayPalEcResult['PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE']); } else { // Payflow $ship_firstname = tep_db_prepare_input(substr($appPayPalEcResult['SHIPTONAME'], 0, strpos($appPayPalEcResult['SHIPTONAME'], ' '))); $ship_lastname = tep_db_prepare_input(substr($appPayPalEcResult['SHIPTONAME'], strpos($appPayPalEcResult['SHIPTONAME'], ' ')+1)); $ship_address = tep_db_prepare_input($appPayPalEcResult['SHIPTOSTREET']); $ship_address2 = (isset($appPayPalEcResult['SHIPTOSTREET2']) ? tep_db_prepare_input($appPayPalEcResult['SHIPTOSTREET2']) : ''); $ship_city = tep_db_prepare_input($appPayPalEcResult['SHIPTOCITY']); $ship_zone = tep_db_prepare_input($appPayPalEcResult['SHIPTOSTATE']); $ship_postcode = tep_db_prepare_input($appPayPalEcResult['SHIPTOZIP']); $ship_country = tep_db_prepare_input($appPayPalEcResult['SHIPTOCOUNTRY']); } $check_query = tep_db_query("select address_book_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and entry_firstname = '" . tep_db_input($ship_firstname) . "' and entry_lastname = '" . tep_db_input($ship_lastname) . "' and entry_street_address = '" . tep_db_input($ship_address) . "' and entry_suburb = '" . tep_db_input($ship_address2) . "' and entry_postcode = '" . tep_db_input($ship_postcode) . "' and entry_city = '" . tep_db_input($ship_city) . "' and (entry_state = '" . tep_db_input($ship_zone) . "' or entry_zone_id = '" . (int)$ship_zone_id . "') and entry_country_id = '" . (int)$ship_country_id . "' limit 1"); if ( tep_db_num_rows($check_query) ) { $check = tep_db_fetch_array($check_query); $sendto = $check['address_book_id']; } else { $sql_data_array = array('customers_id' => $customer_id, 'entry_firstname' => $ship_firstname, 'entry_lastname' => $ship_lastname, 'entry_street_address' => $ship_address, 'entry_suburb' => $ship_address2, 'entry_postcode' => $ship_postcode, 'entry_city' => $ship_city, 'entry_country_id' => $ship_country_id, 'entry_gender' => ''); // v22rc2a compatibility if ( (isset($quote[0]['methods'][0]['title'])) && (isset($quote[0]['methods'][0]['cost'])) ) { $shipping = array('id' => $shipping, 'title' => (($free_shipping == true) ? $quote[0]['methods'][0]['title'] : $quote[0]['module'] . ' (' . $quote[0]['methods'][0]['title'] . ')'), 'cost' => $quote[0]['methods'][0]['cost']); } $params['BILLTOFIRSTNAME'] = $order->billing['firstname']; $params['BILLTOLASTNAME'] = $order->billing['lastname']; $params['BILLTOSTREET'] = $order->billing['street_address']; $params['BILLTOSTREET2'] = $order->billing['suburb']; $params['BILLTOCITY'] = $order->billing['city']; $params['BILLTOSTATE'] = tep_get_zone_code($order->billing['country']['id'], $order->billing['zone_id'], $order->billing['state']); $params['BILLTOCOUNTRY'] = $order->billing['country']['iso_code_2']; $params['BILLTOZIP'] = $order->billing['postcode']; if ( OSCOM_APP_PAYPAL_GATEWAY == '1' ) { // PayPal $params['PAYMENTREQUEST_0_SHIPTONAME'] = $order->delivery['firstname'] . ' ' . $order->delivery['lastname']; $params['PAYMENTREQUEST_0_SHIPTOSTREET'] = $order->delivery['street_address']; $params['PAYMENTREQUEST_0_SHIPTOSTREET2'] = $order->delivery['suburb']; $params['PAYMENTREQUEST_0_SHIPTOCITY'] = $order->delivery['city']; $params['PAYMENTREQUEST_0_SHIPTOSTATE'] = tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], $order->delivery['state']); $params['PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE'] = $order->delivery['country']['iso_code_2']; $params['PAYMENTREQUEST_0_SHIPTOZIP'] = $order->delivery['postcode']; } else { // Payflow $params['SHIPTONAME'] = $order->delivery['firstname'] . ' ' . $order->delivery['lastname']; $params['SHIPTOSTREET'] = $order->delivery['street_address']; $params['SHIPTOSTREET2'] = $order->delivery['suburb']; $params['SHIPTOCITY'] = $order->delivery['city']; $params['SHIPTOSTATE'] = tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], $order->delivery['state']); $params['SHIPTOCOUNTRY'] = $order->delivery['country']['iso_code_2']; $params['SHIPTOZIP'] = $order->delivery['postcode']; } foreach ($quotes as $quote) { if (!isset($quote['error'])) { foreach ($quote['methods'] as $rate) { $quotes_array[] = array('id' => $quote['id'] . '_' . $rate['id'], 'name' => $quote['module'], 'label' => '(' . $rate['title'] . ')', 'cost' => $rate['cost'], 'tax' => $quote['tax']); } Quote Link to comment Share on other sites More sharing options...
greasemonkey Posted January 5, 2016 Share Posted January 5, 2016 Yep... Been and issue for a while. But it looks like it was overlooked as the bug report below has gone know where. http://www.oscommerce.com/forums/tracker/issue-1219-paypal-app-express-checkout-by-greasemonkey/ Quote Link to comment Share on other sites More sharing options...
Guest Posted January 5, 2016 Share Posted January 5, 2016 @@greasemonkey 10-4. I went ahead and confirmed the issue on the bug report. I looked for a github of the PP code to submit a direct update; however, was not able to locate one. Hopefully, we can get others to confirm the bug to get it moving forward. I have since tested the mods I made and all is well. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.