Я пытался реализовать способ оплаты для корзины покупок, используя информацию о карте, прикрепленную к пользователю через модель подписки. И хотя последний работает нормально, всякий раз, когда я пытаюсь взимать плату за корзину, я получаю «Необходимо указать источник или ошибку».
Вот код для начала. Дайте мне знать, если вам нужно больше.
checkouts_controller.rb
def create
customer = Stripe::Customer.create(
source: params[:stripeToken],
email: 'paying.user@example.com',
)
charge = Stripe::Charge.create(
amount: current_cart.total,
currency: 'usd',
description: "Order ##{current_cart.id}"
)
end
Журналы ошибок из тела Stripe Post
{
"amount": "9500",
"currency": "usd",
"description": "Order #1"
}
А из тела ответа
{
"error": {
"code": "parameter_missing",
"doc_url": "https://stripe.com/docs/error-codes/parameter- missing",
"message": "Must provide source or customer.",
"type": "invalid_request_error"
}
}
Я использую стандартную карту 4242 4242 4242 4242, которая фактически записана и прикреплена к моему пользователю через мою модель подписки. Информация о карте, такая как марка, последние четыре цифры, месяц истечения срока годности и год, все это появляется на мой взгляд, когда я добавляю другую карту. Stripe_id также присутствует, когда я проверяю консоль.
Я проверил документацию по полосам и скопировал фрагмент из их действия создания из https://stripe.com/docs/checkout/rails, но это только вызвало ошибку «Невозможно зарядить клиента без активной карты», несмотря на то, что эта карта в настоящее время используется для подписка.
Так, где я дурачился?