diff --git a/modules/payment/modules/commerce_payment_example.module b/modules/payment/modules/commerce_payment_example.module
index 048bdbc..c8a7656 100644
--- a/modules/payment/modules/commerce_payment_example.module
+++ b/modules/payment/modules/commerce_payment_example.module
@@ -26,40 +26,31 @@ function commerce_payment_example_commerce_payment_method_info() {
  * Payment method callback: submit form.
  */
 function commerce_payment_example_submit_form($payment_method, $pane_values, $checkout_pane, $order) {
-  $form = array();
-
-  // Merge in values from the order.
-  if (!empty($order->data['commerce_payment_example'])) {
-    $pane_values += $order->data['commerce_payment_example'];
-  }
-
-  // Merge in default values.
-  $pane_values += array(
-    'name' => '',
+  module_load_include('inc', 'commerce_payment', 'includes/commerce_payment.credit_card');
+  $fields = array(
+    'type' => array(
+      'visa',
+      'mastercard',
+      'amex',
+    ),
   );
-
-  $form['name'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Name'),
-    '#description' => t('This is a demonstration field coded to fail validation for single character values.'),
-    '#default_value' => $pane_values['name'],
-    '#required' => TRUE,
+  $default = array(
+    'number' => '4111111111111111',
   );
-
-  return $form;
+  return commerce_payment_credit_card_form($fields, $default);
 }
 
 /**
  * Payment method callback: submit form validation.
  */
 function commerce_payment_example_submit_form_validate($payment_method, $pane_form, $pane_values, $order, $form_parents = array()) {
-  // Throw an error if a long enough name was not provided.
-  if (strlen($pane_values['name']) < 2) {
-    form_set_error(implode('][', array_merge($form_parents, array('name'))), t('You must enter a name two or more characters long.'));
+  // Validate the credit card fields.
+  module_load_include('inc', 'commerce_payment', 'includes/commerce_payment.credit_card');
+  $settings = array(
+    'form_parents' => array_merge($form_parents, array('credit_card')),
+  );
 
-    // Even though the form error is enough to stop the submission of the form,
-    // it's not enough to stop it from a Commerce standpoint because of the
-    // combined validation / submission going on per-pane in the checkout form.
+  if (!commerce_payment_credit_card_validate($pane_values['credit_card'], $settings)) {
     return FALSE;
   }
 }
