顧客オブジェクトは、Stripe.comに多くのカードを持つことができます。既存のカードにどのように請求しますか?
私はいくつかのことを試しましたが、ストライプAPIは、その顧客に新しいカードを作成するだけでなく、古い顧客トークンと新しいカードトークンを取得するときに何らかの理由で失敗します。だから私はすべての顧客のカードを取得し、ラジオボタンで1つを選択し、選択したカードのトークンを請求に提出するというルートをたどりました
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
私はこれを理解しました。
既存のカードトークンでは、カスタマートークンも送信する必要があります
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}"
)
この回答は、デフォルトのクレジットカード以外の特定のクレジットカードの顧客に請求するために、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;