diff --git a/commerce_stripe.module b/commerce_stripe.module
index 12cf2dd..bb6d091 100755
--- a/commerce_stripe.module
+++ b/commerce_stripe.module
@@ -62,7 +62,6 @@ function commerce_stripe_commerce_payment_method_info() {
   // The payment method info depends on the stripe integration method (stripe.js
   // or Stripe Checkout) the administrator has selected.  We need to load
   // the rules action to determine which integration method is selected.
-  $stripe_integration = STRIPE_DEFAULT_INTEGRATION;
   $cardonfile = FALSE;
   $payment_method_rule = rules_config_load('commerce_payment_commerce_stripe');
   if ($payment_method_rule && $payment_method_rule->active) {
@@ -73,7 +72,8 @@ function commerce_stripe_commerce_payment_method_info() {
       }
 
       if (!empty($action->settings['payment_method']['method_id']) && $action->settings['payment_method']['method_id'] == 'commerce_stripe') {
-        $stripe_integration = $action->settings['payment_method']['settings']['integration_type'];
+        // Default to Stripe.js if no integration_type has been chosen.
+        $stripe_integration = !empty($action->settings['payment_method']['settings']['integration_type']) ? $action->settings['payment_method']['settings']['integration_type'] : STRIPE_DEFAULT_INTEGRATION;
         $cardonfile = !empty($action->settings['payment_method']['settings']['cardonfile']) ? TRUE : FALSE;
         break;
       }
@@ -691,13 +691,28 @@ function _commerce_stripe_save_cardonfile($card, $uid, $payment_method, $set_def
  */
 function commerce_stripe_commerce_payment_method_info_alter(&$payment_methods) {
   if (isset($payment_methods['commerce_stripe'])) {
+    // Just return if they don't have permission to see these errors.
+    if (!user_access('administer payment methods')) {
+      return;
+    }
+    $found_errors = FALSE;
     $settings = _commerce_stripe_load_settings();
-
+    // If secret_key or public_key is not set.
     if (empty($settings['secret_key']) || empty($settings['public_key'])) {
-      if (user_access('administer payment methods')) {
-        drupal_set_message('Stripe secret and public key are required in order to use Stripe payment method. See README.txt for instructions.', 'warning');
-      }
+        $found_errors = TRUE;
+        drupal_set_message(t('Stripe secret and public key are required in order to use Stripe payment method. See README.txt for instructions.'), 'warning');
     }
+    // If integration_type is not set.
+    if (empty($settings['integration_type'])) {
+        $found_errors = TRUE;
+        drupal_set_message(t('The Stripe payment method "Integration type" is not set. Stripe.js will be used by default.'), 'warning');
+    }
+    // If they need to configure anything, be nice and give them the link.
+    if ($found_errors) {
+      $link = l(t('configured here'), 'admin/commerce/config/payment-methods');
+      drupal_set_message(t('Settings required for the Stripe payment method can be !link.', array('!link' => $link)), 'warning');
+    }
+
   }
 }
 
