Подтвердить что ты не робот

Как взимать определенную карту с клиента с помощью 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
4b9b3361

Ответ 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;