Beanstream Payment Gateway For CS Cart 4.x

Hey guys,



We’ve started porting our existing 3.0.6 install of CS Cart to 4.0.2, we haven’t tried out the store importer function, we will share our experience with that when it comes, but right now we are moving our payment processors over.



We had this custom payment gateway for BeanStram Interac Online made for 3.0.6, and we were hoping to be able to adjust the code ourselves for 4.0.2 compatibility. Currently, it doesn’t show up at all in our Payment Gateways selection.



Here is the code:


<br />
if (!empty($_REQUEST['errorMessage']) || !empty($_REQUEST['trnAmount'])) {<br />
require './init_payment.php';<br />
$order_id = (strpos($_REQUEST['trnOrderNumber'], 'INV')) ? substr($_REQUEST['trnOrderNumber'], 0, strpos($_REQUEST['trnOrderNumber'], 'INV')) : $_REQUEST['trnOrderNumber'];<br />
$pp_response = array(<br />
  'reason_text' => '',<br />
  'order_status' => 'F'<br />
);<br />
if (!empty($_REQUEST['trnApproved']) && !empty($_REQUEST['authCode'])) {<br />
  $pp_response['order_status'] = 'P';<br />
}<br />
if (!empty($_REQUEST['authCode'])) {<br />
  $pp_response['reason_text'] .= "AuthNo: " . $_REQUEST['authCode'] . "; ";<br />
}<br />
if (!empty($_REQUEST['messageText'])) {<br />
  $pp_response['reason_text'] .= "Message: " . strip_tags($_REQUEST['messageText']) . "; ";<br />
}<br />
if (!empty($_REQUEST['avsMessage'])) {<br />
  $pp_response['descr_avs'] .= "AvsResponse: " . $_REQUEST['avsMessage'] . "; ";<br />
}<br />
if (!empty($_REQUEST['errorFields'])) {<br />
  $pp_response['reason_text'] .= "ErrorFields: " . $_REQUEST['errorFields'] . "; ";<br />
}<br />
if (!empty($_REQUEST['errorMessage'])) {<br />
  $pp_response['reason_text'] .= "ErrorMessage: " . $_REQUEST['errorMessage'] . "; ";<br />
}<br />
if (!empty($_REQUEST['trnId'])) {<br />
  $pp_response['transaction_id'] = $_REQUEST['trnId'];<br />
}<br />
if (fn_check_payment_script('beanstream_io.php', $order_id)) {<br />
  fn_finish_payment($order_id, $pp_response, false);<br />
  fn_order_placement_routines($order_id);<br />
}<br />
} elseif (defined('AREA')) {<br />
$_order_id = (($order_info['repaid']) ? ($order_id .'INV'. $order_info['repaid']) : $order_id) . ('INV' . TIME);<br />
$return_url = Registry::get('config.current_location') . "/payments/beanstream_io.php";<br />
$full_name = $order_info['firstname'] . ' ' . $order_info['lastname'];<br />
$b_name = $order_info['b_firstname'] . ' ' . $order_info['b_lastname'];<br />
$s_name = $order_info['s_firstname'] . ' ' . $order_info['s_lastname'];<br />
$b_phone = $s_phone =  !empty($order_info['phone']) ? $order_info['phone'] : Registry::get('settings.Company.company_phone');<br />
$b_state = strlen($order_info["b_state"]) != 2 ? "--" : $order_info["b_state"];<br />
$s_state = strlen($order_info["s_state"]) != 2 ? "--" : $order_info["s_state"];<br />
echo <<<EOT<br />
<html><br />
<body onLoad="javascript: document.process.submit();"><br />
<form method="post" action="https://www.beanstream.com/scripts/process_transaction.asp" name="process"><br />
<input type="hidden" name="merchant_id" value="{$processor_data['params']['merchant_id']}"><br />
<input type="hidden" name="trnOrderNumber" value="{$_order_id}"><br />
<input type="hidden" name="trnCardOwner" value="{$full_name}"><br />
<input type="hidden" name="trnAmount" value="{$order_info['total']}"><br />
<input type="hidden" name="errorPage" value="{$return_url}"><br />
<input type="hidden" name="approvedPage" value="{$return_url}"><br />
<input type="hidden" name="declinedPage" value="{$return_url}"><br />
<input type="hidden" name="paymentMethod" value="IO"><br />
<input type="hidden" name="ordEmailAddress" value="{$order_info['email']}"><br />
<input type="hidden" name="ordName" value="{$b_name}"><br />
<input type="hidden" name="ordPhoneNumber" value="{$b_phone}"><br />
<input type="hidden" name="ordAddress1" value="{$order_info['b_address']}"><br />
<input type="hidden" name="ordAddress2" value="{$order_info['b_address_2']}"><br />
<input type="hidden" name="ordCity" value="{$order_info['b_city']}"><br />
<input type="hidden" name="ordProvince" value="{$b_state}"><br />
<input type="hidden" name="ordPostalCode" value="{$order_info['b_zipcode']}"><br />
<input type="hidden" name="ordCountry" value="{$order_info['b_country']}"><br />
<input type="hidden" name="shipEmailAddress" value="{$order_info['email']}"><br />
<input type="hidden" name="shipName" value="{$s_name}"><br />
<input type="hidden" name="shipPhoneNumber" value="{$s_phone}"><br />
<input type="hidden" name="shipAddress1" value="{$order_info['s_address']}"><br />
<input type="hidden" name="shipAddress2" value="{$order_info['s_address2']}"><br />
<input type="hidden" name="shipCity" value="{$order_info['s_city']}"><br />
<input type="hidden" name="shipProvince" value="{$s_state}"><br />
<input type="hidden" name="shipPostalCode" value="{$order_info['s_zipcode']}"><br />
<input type="hidden" name="shipCountry" value="{$order_info['s_country']}"><br />
EOT;<br />
$msg = fn_get_lang_var('text_cc_processor_connection');<br />
$msg = str_replace('[processor]', 'BeanStream server', $msg);<br />
echo <<<EOT<br />
</form><br />
   <p><div align=center>{$msg}</div></p><br />
</body><br />
</html><br />
EOT;<br />
} else {<br />
die('Access denied');<br />
}<br />
exit;<br />
?><br />

```<br />
<br />
Can anyone assist us with this? It'd be greatly appreciated! <img src="upload://rA9Qa8gnUPZzRZRdI8kt3dpjkrs.png" class="bbc_emoticon" alt=":)">