Я не до конца понимаю процесс оплаты в Stripe. Например, пользователь должен заплатить 50 долларов. Что я (мое приложение) делаю:
- Я показываю пользователю форму для ввода данных о карте.
<form action="your-server-side-code" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_TYooMQauvdEDq54NiTphI7jx"
data-amount="50000"
data-name="Stripe.com"
data-description="Example charge"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-zip-code="true">
</script>
</form>
- После того, как пользователь нажал кнопку оплаты, я получаю объект
Request
и получаю от него токен. И после этого я заполняю параметры и один параметр amount
:
String token = request.getParameter("stripeToken");
Map<String, Object> params = new HashMap<String, Object>();
params.put("amount", 50000);
params.put("currency", "usd");
params.put("description", "Example charge");
params.put("source", token);
Charge charge = Charge.create(params);
Почему я отправляю сумму дважды? Первый раз в форме второй раз из кода?
Почему я не могу получить сумму из запроса?
params.put("amount", request.getParameter("amount")); //always 0
Во всех попытках такой метод всегда возвращает мне 0.
Как это работает? Как сумма обычно связана на первом и втором шагах? Что если я укажу другую сумму на втором шаге? То есть пользователь увидит в форме 50 долларов, а затем из кода я случайно установлю 60 долларов?
Было бы логично отправить сумму один раз и получить ее из запроса.