Всички публикации

От разработката на Level8

Защо адресът за успех не доказва плащане: разбор от Level8.

При свързването на поръчките за одит и стратегия в собствения ни сайт трябваше да разграничим връщането от платежната страница, полученото плащане и записаната поръчка. Проверихме тази граница с локални симулирани доставчици и действителни записи в тестова база.

Level8

Оригинална редакционна бележка на Level8 за работния подход.

Какво може да покаже един адрес

Страниците /platen-odit/uspeh и /strategia/uspeh могат да бъдат отворени направо. Името им и добавен параметър paid=true не доказват, че някой е платил. Ако надписът „Плащането е потвърдено“ зависи само от адреса, посетителят получава уверение, което системата още не е проверила.

Това беше конкретният риск при преминаването от демонстрационните покупки към свързаните форми на Level8. Демонстрацията позволява разглеждане на състояния. Поръчката трябва да показва състоянието на точното плащане. Затова страницата за връщане започва с проверка, включително когато основното ѝ съдържание вече идва от сървъра.

Две потвърждения с различен смисъл

Браузърът изпраща идентификатора на платежната сесия към нашия сървър. Там проверяваме дали сесията е за правилната услуга, дали е платена и дали продуктът и сумата съответстват. Сесия за одит не може да потвърди покупка на стратегия.

Следва отделна проверка: има ли записана платежна операция в нашата база? Подписаното известие от платежния доставчик задейства обработването на картовото плащане. Самото отваряне на страницата за успех само чете статуса. Така разграничаваме „плащането е получено, записваме поръчката“ от „поръчката е потвърдена“.

При недостъпен доставчик показваме, че статусът не може да бъде проверен. Има и отделни състояния за неплатена или изтекла сесия и за възстановена сума. Забавен отговор не е основание да съветваме клиента да плаща повторно.

Повторният клик и променената цена

Поръчката има идентификатор за повторно изпращане. Един и същ опит със същите данни трябва да върне съществуващия резултат. Това е важно при прекъсване, когато клиентът не знае дали първият клик е стигнал до сървъра.

Проверихме и друг граничен случай: отворена форма за стратегия със стара цена. Сървърът връща актуалната сума, преди да създаде платежна сесия. Формата запазва въведените данни и изисква изрично приемане на новата цена. При банков превод потвърждението казва, че поръчката е записана, но плащането още не е потвърдено.

Какво установиха локалните проверки

  • Три еднакви заявки за банков одит създадоха една неплатена поръчка и един запис за изпращане на проформа.
  • Повторното изпращане за одит и стратегия запази по една платежна сесия. Несъответстващият продукт беше отхвърлен.
  • Подписаното локално тестово известие доведе до записано плащане, фактура и право на съответната услуга. Повторението му не дублира обработката.
  • Стара цена на стратегията беше върната за повторно приемане. Параметър за успех без валидна сесия не установи плащане.
  • Обслужените SSR страници за успех без идентификатор на сесия започнаха с проверка, без да обявят плащане.

Какво тези резултати не доказват

Това са проверки на собствения Level8 проект с локално симулиран платежен доставчик. Има записани тестови поръчки, но няма реално таксуване, външен имейл или възложена клиентска услуга. Отделната HTTP проверка установява началния HTML; тя не замества проверките на обработката на плащането.

Приемането с активен платежен доставчик и реалната публикация остават отделни стъпки. Няма основание от този тест да извеждаме ръст на продажбите или резултат за външен клиент.

Полезният въпрос при приемане на магазин

Поискайте да видите какво стои зад надписа „Платено“: кой сървърен запис го потвърждава, какво се показва при забавяне и как системата разпознава повторния опит. Проверете и връщането без плащане. Тези няколко случая разкриват повече за завършеността на поръчката от снимка на страницата за успех.

Следваща стъпка по темата

Планирате магазин с онлайн плащане?

Добавете към заданието успешна поръчка, отказано плащане и повторен опит. Прегледайте услугата, преди да уточним необходимите доставчици и интеграции.

Вижте изработката на онлайн магазин

Следете публикациите.

Следващото полезно четиво.

Нови публикации от Level8 по имейл. Потвърждавате с личен линк и можете да се отпишете от всяко писмо.

Или следвайте RSS