Vi3arD / spring-course-task-2-web-mvc

0 stars 0 forks source link

Где логика с "Если указать в параметре amount ноль, завершение произойдёт на всю предавторизованную сумму."? #9

Closed coursar closed 3 years ago

coursar commented 3 years ago

https://github.com/Vi3arD/spring-course-task-2-web-mvc/blob/692a4d66e006d6a64eb57bade844e14e0b0922d5/src/main/java/org/example/service/OrderService.java#L30

Vi3arD commented 3 years ago

@coursar то есть получается что покрывать сумму заказа мы можем в несколько запросов и тогда на на уровне заказа так же нужно хранить ту сумму которую уже успели погасить?

coursar commented 3 years ago

Нет, это задачка была на внимательность )). Если внимательно почитаете доки, то увидите, что запрос завершения заказа нужен только если вы делаете запрос пред.авторизации. Но у вас его нет - поэтому запроса завершения тоже не будет.

Как это работает на самом деле:

  1. Вы регистрируете заказ
  2. Клиент уходит платить (у него обычно есть 15 минут на оплату)
  3. Сервис Альфы (или Сбера, если интегрируетесь со Сбером) присылает вам уведомление (по факту, дёргает один из ваших методов) с уведомлением о результате платежа (если клиент его совершил) - вы обновляете статус в БД
  4. Если клиент не совершил платёж, либо к вам пришёл клиент с заявлением, что оплатил, либо сервис Альфы не смог достучаться до вас после нескольких попыток - вы сами запрашиваете у Альфы статус и обновляете его в БД

Полная картинка image

Из этого всего вам нужно было реализовать только три запроса из 4-х, указанных в задании.

coursar commented 3 years ago

Картинка лежит там же в доках https://pay.alfabank.ru/ecommerce/instructions/merchantManual/pages/index/integration_schemes.html