diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 4c8ff80..b2a095b 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,3 @@
-Journal 6.x-1.x, 2011-06-17
----------------------------
-Issue #1054616 by AntoineSolutions: Implemented hook_requirements().
+Ubercart QuickBooks Merchant Services 7.x-1.x, 2011-06-17
+---------------------------------------------------------
+Issue #1056466 by jerry: Ported to Drupal 7.x/Ubercart 3.x.
diff --git a/README.txt b/README.txt
index bc5e38f..7a25448 100644
--- a/README.txt
+++ b/README.txt
@@ -10,9 +10,6 @@ This module uses and is dependent on the Intuit PHP Toolkit by Keith Palmer
 (http://www.ConsoliBYTE.com).  The Framework can be download from Intuit:
   https://code.intuit.com/sf/frs/do/viewSummary/projects.php_devkit/frs
 
-The current release of this module is designed for Ubercart 2.x and has not been
-tested against any other version of Ubercart.
-
 For a full description of the module, visit the project page:
   http://drupal.org/project/uc_qbms
 
@@ -69,7 +66,8 @@ Step 2: Login using your QBMS account name and password.
 Step 3: Approve the connection with "QBMS CC Gateway for Drupal/Ubercart"
 Step 4: DO NOT turn on any additional passwords or security if it asks.
 Step 5: Copy the Connection Ticket Intuit and paste it on the module configuration page:
-  Administer > Store Administration > Configuration > Payment settings > Payment Gateways  (DRUPAL_ROOT)/admin/store/settings/payment/edit/gateways
+  Administration > Store > Configuration > Payment methods > settings 
+  i.e. (DRUPAL_ROOT)/admin/store/settings/payment/method/credit
 Step 6: Confirm that your Quickbooks PHP DevKit path is set correctly and that
   Test Evironment is DISABLED.
 
diff --git a/uc_qbms.info b/uc_qbms.info
index e31034e..b98c2b6 100644
--- a/uc_qbms.info
+++ b/uc_qbms.info
@@ -1,7 +1,6 @@
-name = Quickbooks Merchant Service
-description = Process payments through Quickbook Merchant Services for Web Store.
+name = QuickBooks Merchant Services
+description = Process payments through QuickBooks Merchant Services for Web Store.
 dependencies[] = uc_payment
 dependencies[] = uc_credit
 package = Ubercart - payment
-core = 6.x
-php = 5.0
+core = 7.x
diff --git a/uc_qbms.install b/uc_qbms.install
index ba9d741..7a26215 100644
--- a/uc_qbms.install
+++ b/uc_qbms.install
@@ -21,7 +21,7 @@ function uc_qbms_requirements($phase) {
 
   if (!$has_curl) {
     $requirements['uc_qbms_curl']['severity'] = REQUIREMENT_ERROR;
-    $requirements['uc_qbms_curl']['description'] = $t("The Quickbooks Merchant Services API requires the PHP <a href='!curl_url'>CURL</a> library.", array('!curl_url' => 'http://www.php.net/curl'));
+    $requirements['uc_qbms_curl']['description'] = $t("The QuickBooks Merchant Services API requires the PHP <a href='!curl_url'>CURL</a> library.", array('!curl_url' => 'http://www.php.net/curl'));
   }
 
   return $requirements;
@@ -59,11 +59,8 @@ function uc_qbms_schema() {
  * Implements hook_install().
  */
 function uc_qbms_install() {
-  // Install schemas.
-  drupal_install_schema('uc_qbms');
-
-  drupal_set_message(t('QBMS CC Gateway is installed and can be turned on and configured at <a href="@link">Payment Gateways</a>.',
-    array('@link' => url('admin/store/settings/payment/edit/gateways'))
+  drupal_set_message(st('QBMS CC Gateway is installed and can be turned on and configured at <a href="@link">Payment Gateways</a>.',
+    array('@link' => url('admin/store/settings/payment/method/credit'))
   ));
 }
 
@@ -71,11 +68,8 @@ function uc_qbms_install() {
  * Implements hook_uninstall().
  */
 function uc_qbms_uninstall() {
-  // Uninstall schemas.
-  drupal_uninstall_schema('uc_qbms');
-
   // Delete settings variables .
-  variable_del('uc_qbms_qb_php_dk_path');
+  variable_del('uc_qbms_php_dk_path');
   variable_del('uc_qbms_connection_ticket');
   variable_del('uc_qbms_txn_mode');
 }
diff --git a/uc_qbms.module b/uc_qbms.module
index d162f56..a4e146a 100644
--- a/uc_qbms.module
+++ b/uc_qbms.module
@@ -2,11 +2,11 @@
 
 /**
  * @file
- * Process payments using Quickbooks Merchant Services (QBMS) for Web Store.
+ * Process payments using QuickBooks Merchant Services (QBMS) for Web Store.
  */
 
 /**
- * Default path to the Quickbooks PHP DevKit directory.
+ * Default path to the QuickBooks PHP DevKit directory.
  */
 define('UC_QBMS_PHP_DK_PATH', 'sites/all/libraries/quickbooks_php_devkit');
 
@@ -20,15 +20,14 @@ define('UC_QBMS_APPLOGIN', 'qbms.ubercart.org');
 define('UC_QBMS_TEST_APPLOGIN', 'qbmstest.ubercart.org');
 
 /**
- * Implements hook_payment_gateway().
+ * Implements hook_uc_payment_gateway().
  */
-function uc_qbms_payment_gateway() {
-  $gateways[] = array(
-    'id' => 'qbms',
-    'title' => t('Quickbooks Merchant Services'),
+function uc_qbms_uc_payment_gateway() {
+  $gateways['qbms'] = array(
+    'title' => t('QuickBooks Merchant Services'),
     'description' => t('Process credit card payments through the QBMS for Web Store.'),
     'settings' => 'uc_qbms_settings_form',
-    'credit' => 'uc_qbms_process',
+    'credit' => 'uc_qbms_card_process',
     'credit_txn_types' => array(UC_CREDIT_AUTH_CAPTURE),
   );
 
@@ -38,17 +37,18 @@ function uc_qbms_payment_gateway() {
 /**
  * Callback for payment gateway settings.
  */
-function uc_qbms_settings_form() {
+function uc_qbms_settings_form($form, &$form_state) {
   // Verify that the QBMS PHP SDK is installed.
   $UC_QBMS_PHP_DK_PATH = variable_get('uc_qbms_php_dk_path', UC_QBMS_PHP_DK_PATH);
   if (!is_dir($UC_QBMS_PHP_DK_PATH)) {
-    drupal_set_message(t('You need to download the <a href="@qb_php_dk">Quickbooks PHP DevKit</a> and extract the entire contents of the archive into the !path folder of your server. Then rename the top folder of the library to quickbooks_php_devkit so that the main library file is located here: @path. ', array('@qb_php_dk' => 'https://code.intuit.com/sf/frs/do/viewSummary/projects.php_devkit/frs', '@path' => 'sites/all/libraries/quickbooks_php_devkit/QuickBooks.php')), 'error');
+    drupal_set_message(t('You need to download the <a href="@qb_php_dk">QuickBooks PHP DevKit</a> and extract the entire contents of the archive into the @libpath folder of your server. Then rename the top folder of the library to quickbooks_php_devkit so that the main library file is located here: @path',
+      array('@libpath' => 'sites/all/libraries', '@qb_php_dk' => 'https://code.intuit.com/sf/frs/do/viewSummary/projects.php_devkit/frs', '@path' => 'sites/all/libraries/quickbooks_php_devkit/QuickBooks.php')), 'error');
   }
   $form['uc_qbms_php_dk_path'] = array(
     '#type' => 'textfield',
-    '#title' => t('Path to Quickbooks PHP DevKit'),
+    '#title' => t('Path to QuickBooks PHP DevKit'),
     '#default_value' => $UC_QBMS_PHP_DK_PATH,
-    '#description' => t('Enter the path relative to Drupal root where the Quickbooks PHP DevKit directory is located. NO trailing slash!'),
+    '#description' => t('Enter the path relative to Drupal root where the QuickBooks PHP DevKit directory is located. NO trailing slash!'),
   );
 
   // Retrieve the un-encrypted connection ticket.
@@ -57,7 +57,7 @@ function uc_qbms_settings_form() {
     '#type' => 'textfield',
     '#title' => t('Connection Ticket'),
     '#default_value' => $login_data['connection_ticket'],
-    '#description' => t('Enter the Contection Ticket provided by Intuit.<br />Get your connection ticket from Intuit by connecting your QBMS account with this module at: <a href="@qb_appr">Quickbooks Merchant Service Center</a>', array('@qb_appr' => 'https://merchantaccount.quickbooks.com/j/sdkconnection?appid=179399124&appdata=mydata')),
+    '#description' => t('Enter the Connection Ticket provided by Intuit.<br />Get your connection ticket from Intuit by connecting your QBMS account with this module at: <a href="@qb_appr">QuickBooks Merchant Service Center</a>', array('@qb_appr' => 'https://merchantaccount.quickbooks.com/j/sdkconnection?appid=179399124&appdata=mydata')),
   );
 
   $form['env'] = array(
@@ -67,7 +67,7 @@ function uc_qbms_settings_form() {
   $form['env']['uc_qbms_txn_mode'] = array(
     '#type' => 'radios',
     '#title' => t('Transaction Mode'),
-    '#default_value' =>  variable_get('uc_qbms_txn_mode', 'test'),
+    '#default_value' => variable_get('uc_qbms_txn_mode', 'test'),
     '#options' => array(
       'live' => t('Live transactions'),
       'test' => t('Test transactions'),
@@ -79,10 +79,12 @@ function uc_qbms_settings_form() {
 }
 
 /**
- * Implements hook_form_FORM_ID_alter().
+ * Implements hook_form_FORM_ID_alter() for uc_payment_method_settings_form().
  */
-function uc_qbms_form_uc_payment_gateways_form_alter(&$form, $form_state) {
-  $form['#submit'][] = 'uc_qbms_payment_gateway_settings_submit';
+function uc_qbms_form_uc_payment_method_settings_form_alter(&$form, &$form_state) {
+  if ($form_state['build_info']['args'][0] == 'credit') {
+    $form['#submit'][] = 'uc_qbms_payment_gateway_settings_submit';
+  }
 }
 
 /**
@@ -92,7 +94,7 @@ function uc_qbms_payment_gateway_settings_submit($form, &$form_state) {
   // If CC encryption has been configured properly.
   if ($key = uc_credit_encryption_key()) {
     // Setup our encryption object.
-    $crypt = new uc_encryption_class;
+    $crypt = new UbercartEncryption();
 
     // Encrypt the Connection Ticket.
     if (!empty($form_state['values']['uc_qbms_connection_ticket'])) {
@@ -106,10 +108,10 @@ function uc_qbms_payment_gateway_settings_submit($form, &$form_state) {
 
 /**
  * Handler for processing credit card transactions.
- * 
+ *
  * @todo Implement additional methods supported by the QB PHP DevKit.
  */
-function uc_qbms_process($order_id, $amount, $data) {
+function uc_qbms_card_process($order_id, $amount, $data) {
   // Load the order.
   $order = uc_order_load($order_id);
 
@@ -126,7 +128,7 @@ function uc_qbms_process($order_id, $amount, $data) {
  */
 function uc_qbms_charge($order, $amount, $data) {
   // Require the QB PHP DevKit.
-  require_once './' . variable_get('uc_qbms_php_dk_path', UC_QBMS_PHP_DK_PATH) . '/' . 'QuickBooks.php';
+  require_once DRUPAL_ROOT . '/' . variable_get('uc_qbms_php_dk_path', UC_QBMS_PHP_DK_PATH) . '/' . 'QuickBooks.php';
   global $user;
 
   // Retrieve the un-encrypted connection ticket.
@@ -150,7 +152,7 @@ function uc_qbms_charge($order, $amount, $data) {
 
   // Create the CreditCard object.
   $card = new QuickBooks_MerchantService_CreditCard(
-    $order->payment_details['cc_owner'],
+    $order->billing_first_name . ' ' . $order->billing_last_name,
     $order->payment_details['cc_number'],
     $order->payment_details['cc_exp_year'],
     $order->payment_details['cc_exp_month'],
@@ -185,7 +187,11 @@ function uc_qbms_charge($order, $amount, $data) {
       'success' => TRUE,
       'comment' => $message,
       'message' => $message,
-      'data' => array('module' => 'uc_qbms', 'txn_type' => $transaction['Type'], 'txn_id' => $transaction['CreditCardTransID']),
+      'data' => array(
+        'module' => 'uc_qbms',
+        'txn_type' => $transaction['Type'],
+        'txn_id' => $transaction['CreditCardTransID'],
+      ),
       'uid' => $user->uid,
     );
 
@@ -195,9 +201,9 @@ function uc_qbms_charge($order, $amount, $data) {
         '@type' => $transaction['Type'],
         '@status' => $result['success'] ? t('ACCEPTED') : t('REJECTED'),
         '@message' => $transaction['PaymentStatus'],
-        '@amount' => uc_price($amount, $context),
+        '@amount' => uc_currency_format($amount),
         '@avss' => $transaction['AVSStreet'],
-        '@avsz' => $transaction['AVSZip']
+        '@avsz' => $transaction['AVSZip'],
       )
     );
 
@@ -226,7 +232,7 @@ function uc_qbms_charge($order, $amount, $data) {
     );
 
     // Build a comment for display in the Order notes.
-    $comment = t('<b>@status:</b> @message<br />Amount: @amount', array('@status' => $result['success'] ? t('ACCEPTED') : t('REJECTED'), '@message' => $error['message'], '@amount' => uc_price($amount, $context)));
+    $comment = t('<b>@status:</b> @message<br />Amount: @amount', array('@status' => $result['success'] ? t('ACCEPTED') : t('REJECTED'), '@message' => $error['message'], '@amount' => uc_currency_format($amount)));
   }
 
   // Save the comment to the order.
@@ -260,7 +266,7 @@ function uc_qbms_login_data() {
   // If CC encryption has been configured properly.
   if ($key = uc_credit_encryption_key()) {
     // Setup our encryption object.
-    $crypt = new uc_encryption_class;
+    $crypt = new UbercartEncryption();
 
     // Decrypt the connection_ticket.
     if (!empty($connection_ticket)) {
