There could be other fields Being required like see below the fields that are being used by the plugin
$token_id = Stripe_Token::create(array(
"card" => array(
'number' => sanitize_text_field(str_replace(' ','',$_POST['stripe-card-number'])),
'cvc' => sanitize_text_field($_POST['stripe-card-cvc']),
'exp_month' => $exp_month,
'exp_year' => $exp_year,
'name' => $wc_order->billing_first_name.' '.$wc_order->billing_last_name,
'address_line1' => $wc_order->billing_address_1 ,
'address_line2' => $wc_order->billing_address_2,
'address_city' => $wc_order->billing_city,
'address_state' => $wc_order->billing_state,
'address_zip' => $wc_order->billing_postcode,
'address_country' => $wc_order->billing_country
)
)
);
$charge = Stripe_Charge::create(array(
'amount' => $amount,
'currency' => $this->stripe_storecurrency,
'card' => $token_id->id,
'capture' => STRIPE_TRANSACTION_MODE,
'statement_descriptor' => 'Order#'.$wc_order->get_order_number(),
'metadata' => array(
'Order #' => $order_id,
'Total Tax' => $wc_order->get_total_tax(),
'Total Shipping' => $wc_order->get_total_shipping(),
'Customer IP' => $this->get_client_ip(),
'WP customer #' => $wc_order->user_id,
'Billing Email' => $wc_order->billing_email,
) ,
'receipt_email' => $wc_order->billing_email,
'description' => get_bloginfo('blogname').' Order #'.$wc_order->get_order_number(),
'shipping' => array(
'address' => array(
'line1' => $wc_order->shipping_address_1,
'line2' => $wc_order->shipping_address_2,
'city' => $wc_order->shipping_city,
'state' => $wc_order->shipping_state,
'country' => $wc_order->shipping_country,
'postal_code' => $wc_order->shipping_postcode
),
'name' => $wc_order->shipping_first_name.' '.$wc_order->shipping_last_name,
'phone'=> $wc_order->billing_phone
)
)
);