stripe data address ruby-on-rails stripe-payments

ruby on rails - data - Cómo cargar una tarjeta en particular en un cliente con Stripe.com



stripe payment reference (2)

Esta respuesta ayuda a ME a aplicar la misma solución en PHP para cobrar a un cliente de tarjeta de crédito específico, que no sea la tarjeta de crédito predeterminada. Aquí las piezas:

JSON:

{ "charge": { "amount":122, "currency":"usd", "customer":"cus_7hVsgytCc79BL7", "card":"card_17SENFJ4sx1xVfmD8skoSjNs" } }

PHP

$item = $params->request->getJsonRawBody(); $new_charge = /Stripe/Charge::create(array( "amount" => $this->ConvertAmount($item->charge->amount), "currency" => $item->charge->currency, "customer" => $item->charge->customer, "card" => $item->charge->card )); return $new_charge;

Un objeto de cliente puede tener muchas tarjetas en Stripe.com. ¿Cómo se carga una tarjeta existente?

He intentado algunas cosas, pero la api de banda por alguna razón indica cuándo obtener un token de cliente antiguo y un token de tarjeta nuevo en lugar de simplemente crear una nueva tarjeta para ese cliente. Así que he seguido la ruta de recuperar todas las tarjetas del cliente, luego seleccionando una por botón de opción y luego enviando el token de la tarjeta elegida a un cargo.

charge = Stripe::Charge.create( :amount => "#{@subscription.price}", :currency => "usd", :card => params[:existing_card_id], :description => "Subscription for #{current_user.email}" )

pero me sale el error

Stripe::InvalidRequestError: Invalid token id: card_24j3i2390s9df


Me di cuenta de esto.

Con los tokens de tarjetas existentes, también tiene que enviar el token del cliente

charge = Stripe::Charge.create( :amount => "#{@subscription.price}", :currency => "usd", :customer => current_user.stripe_customer_id, :card => params[:existing_card_id], :description => "Subscription for #{current_user.email}" )