Different payment methods for different product types
The product's type is a property of the commerce_product entity, so you can use the built-in "Data comparison" condition to test it.

Just add a new condition of type "Data comparison", and make the data selector look like this:



When you continue you'll get a screen like this:



As you can see you get a nice drop down list of product types to choose from. I just tested that and it works a treat.

If that isn't working for whatever reason, it's pretty easy to implement your own rules condition in a custom module:

function MYMODULE_rules_condition_info() {
  return array(
    'commerce_product_is_type' =&gt; array(
      'label' =&gt; t('Product is a certain type'), 
      'parameter' =&gt; array(
        'product' =&gt; array(
          'label' =&gt; t('Product'),
          'type' =&gt; 'commerce_product',
        ),
        'type' =&gt; array(
          'label' =&gt; t('Product Type (Machine Name)'),
          'type' =&gt; 'text'
        )
      ), 
      'group' =&gt; t('Commerce Product'),
      'callbacks' =&gt; array(
        'execute' =&gt; 'MYMODULE_commerce_product_is_type',
      )
    ),
  );
}


function MYMODULE_commerce_product_is_type($product, $type) {
  return $product-&gt;type == $type;
}