У меня следующая ситуация:
Пользователи могут забронировать номера.
Возможно, что гостевая книгакомната, без учета.В этом случае я создаю комиссионный сбор без клиента
Возможно, что пользователь, пока он находится в процессе бронирования, решает создать учетную запись.В этом случае я также создаю клиента полосы.
Что мне нужно
Если пользователь решит создать учетную запись:
Я хочу взять кредитную карту, которая была введена пользователем и использовалась для создания платежа, и прикрепить кредитную карту к клиенту, чтобы пользователь мог видеть свою кредитную карту в своем профиле и выбирать / использовать ее для будущих бронирований..
Проблема:
Плата за полосу создается до создания клиента.Поэтому мне нужно взять источник и прикрепить его к клиенту.(Я уже успешно могу обновить плату и добавить customer.id, но тот же процесс не работает для обновления клиента.)
Обновление источника клиента дает мне:
Cannot use stripe token more than once
Что я пробовал до сих пор:
получение card_id от заряда
ch_ch = stripe.Charge.retrieve(new_booking.stripe_charge_id)
customer.sources.create(card=ch_ch.source.id)
customer.save()
с использованием идентификатора источника
customer.sources.create(source=form.stripe_source_id.data)
другой синтаксис
customer.source = form.stripe_source_id.data
customer.save()
Примечание: form.stripe_source_id.data
содержит tok_1DEvMCGd8vfeewZVgrSRu4
, который возвращается stripe.js при создании элемента кредитной карты.Это используется для создания платы, которая прекрасно работает:
stripe_charge = stripe.Charge.create(
amount=int(float(data_received['total_price']) * 100),
currency="eur",
source=form.stripe_source_id.data,
description=None,
#customer=user_id, # customer is anonymous
capture=False, # if False the charge needs to be captured, otherwise it will expire in 7 days and is refunded
#receipt_email='email für den typer, der die rechnung kriegt, funktioniert nur im livemode',
metadata={
'infos': 'process stripe payment anonymous charge'
}
)
В документах я отмечаю, что если источник клиента подключен / обновлен, то создается новый источник, но это означает, что его невозможно прикрепитьСУЩЕСТВУЮЩИЙ источник для клиента?Это не может быть правдой.
Идентификатор токена или источника, возвращаемый Elements.Передача источника создаст новый исходный объект, сделает его новым источником по умолчанию для клиента и удалит старый вариант по умолчанию для клиента, если он существует.