Как взимать определенную карту с клиента с помощью Stripe.com
Объект клиента может иметь много карт на Stripe.com. Как вы берете плату за существующую карту?
Я пробовал несколько вещей, но полоса api по какой-то причине возбуждает, когда получает старый токен клиента и новый токен карты, а не просто создает новую карту для этого клиента. Таким образом, я пошел по пути получения всех карт клиента, затем выбрав один по радио, затем отправив токен выбранной карты в заряд
charge = Stripe::Charge.create(
:amount => "#{@subscription.price}",
:currency => "usd",
:card => params[:existing_card_id],
:description => "Subscription for #{current_user.email}"
)
но я получаю ошибку
Stripe::InvalidRequestError: Invalid token id: card_24j3i2390s9df
Ответы
Ответ 1
Я понял это.
С существующими маркерами вы должны также отправить токен клиента
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}"
)
Ответ 2
Этот ответ поможет мне применить одно и то же решение в PHP для оплаты конкретного клиента кредитной карты, за исключением кредитной карты по умолчанию. Здесь фрагменты:
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;