How do you provide conditional checkout options depending on whats in the cart?
I believe you have already set different product types to handle different kind of product.

So what you have to do is, by default disable payment methods and set them one by one in rules to make a payment option available if certain product type in in cart.


Add Event "Select available payment methods for an order"
Add Condition "Order contains products of particular product type"
Add Action "Enable payment method: (Your Payment Method)"


I have done something like this for COD(Cash on Delivery) for certain product type in certain postal codes.