Ключові висновки зі статті:

  • Втрата картки не обов’язково означає втрату балів. У описаній моделі картка є ідентифікатором, а баланс залишається в обліковому записі учасника. Умовою відновлення доступу є надійне пов’язання облікового запису з клієнтом. Не слід обіцяти таке саме рішення для анонімних карток зі штампами, історію яких неможливо підтвердити.
  • Виявлення облікового запису ще не підтверджує права особи, яка заявляє про втрату картки. Передбачте верифікацію через авторизований обліковий запис або одноразовий код, надісланий на раніше прив’язані телефон чи електронну пошту. Якщо клієнт утратив доступ до цього каналу, передайте справу уповноваженій службі підтримки. Надсилання коду на нову адресу, вказану під час звернення, не замінює перевірку прав.
  • Заміна картки лояльності не повинна створювати другий обліковий запис або скидати історію участі. Вимкніть загублений носій, але не видаляйте обліковий запис. Прив’яжіть нову картку до попереднього облікового запису та перевірте доступ до балансу, історії, статусу й винагород. Не нараховуйте повторно наявні бали, не продовжуйте терміни їхньої дії та не запускайте вдруге вітальний бонус.
  • Різниця між балансом, який пам’ятає клієнт, і балансом, видимим у системі, потребує пояснення. Замість автоматичного додавання відсутніх балів перевірте нарахування, використання, коригування та закінчення терміну дії. Підозру на використання переваг іншою особою розглядайте як окреме звернення — сама заміна картки не визначає, чи потрібно відновлювати бали.
  • Знайдена стара картка не повинна автоматично відновлювати чинність. У запропонованій процедурі вона залишається неактивною, а клієнт користується новою. Відрізняйте навмисну видачу додаткової картки від повторного використання носія, заявленого як втрачений. Перевірте, чи діє блокування також в інших закладах мережі.
  • Процедура має охоплювати складніші ситуації, ніж стандартна видача нової картки. Протестуйте відсутність номера картки, втрату доступу до телефону чи електронної пошти, розбіжність балансу, повторне звернення та знаходження старого носія. Запис про заміну має давати змогу наступному працівникові розпізнати вже опрацьовану справу й уникнути створення нового облікового запису або подвійного нарахування балів.
  • Клієнту потрібне чітке підтвердження того, що змінилося після заміни. Повідомте, що нова картка веде до попереднього облікового запису, назвіть актуальний баланс і зазначте, що попередня картка залишається неактивною навіть після знаходження. Усю процедуру впорядковує принцип: замінюйте картку, а не історію клієнта.

Вступ

Картки лояльності — це фізичні або цифрові ідентифікатори учасника програми лояльності, які дають змогу прив’язувати покупки та іншу активність до його облікового запису й нараховувати бали, знижки або інші переваги. У випадку карток, пов’язаних з обліковим записом клієнта, накопичені бали зазвичай зберігаються в системі програми, а не на самій картці, тому її втрата не обов’язково означає втрату балансу.

Клієнт повідомляє про втрату картки лояльності, на якій, за його словами, «мав 1250 балів». Він хоче повернути переваги, а не починати спочатку. Самої видачі нової картки недостатньо. Потрібно знайти правильний обліковий запис, підтвердити права та вирішити долю старого носія.

Спочатку визначте, де зберігаються бали

Припустімо модель, у якій картка ідентифікує учасника, а баланс зберігається в його обліковому записі в системі. Тоді втрата носія не обов’язково означає втрату балів. Важливим є попередній зв’язок картки з учасником: наприклад, PAYBACK ставить збереження балів після втрати картки в залежність від її попередньої реєстрації. Не поширюйте цю обіцянку на анонімні картки зі штампами. Без надійної історії та зв’язку з клієнтом не обіцяйте відновлення переваг лише на підставі заяви. Тому під час упровадження карток лояльності визначте процедуру відновлення доступу до наявного облікового запису, адаптовану до можливостей системи та правил програми.

Підтвердьте права та вимкніть загублену картку

Виявлення облікового запису ще не підтверджує права користуватися ним. У запропонованій процедурі не обмежуйтеся прізвищем або номером картки. Передбачте звернення з авторизованого облікового запису або підтвердження одноразовим кодом, надісланим на раніше прив’язану електронну адресу чи номер телефону. Код має бути чинним протягом обмеженого часу. Таке використання окремого каналу зв’язку та одноразових кодів відповідає підходу OWASP до відновлення доступу до облікових записів. Якщо клієнт не має доступу до попереднього каналу, передайте справу уповноваженій команді відповідно до встановленої процедури. Не замінюйте верифікацію надсиланням коду на нову адресу, вказану під час звернення. Після підтвердження прав вимкніть загублену картку та зафіксуйте цю операцію. Також визначте, хто може виконати заміну, щоб працівникові на касі не довелося імпровізувати.

Не видаляйте обліковий запис під час заміни картки. У програмі Kauflandu це також означає втрату балів.

Нова картка, той самий обліковий запис та історія

Повернімося до клієнта з балансом 1250 балів. Після верифікації працівники вимикають стару картку та прив’язують нову до попереднього облікового запису. Якщо не було додаткових нарахувань, використань або завершення терміну дії, баланс і надалі становить 1250. Не додавайте цю кількість повторно: ви замінюєте ідентифікатор, а не нараховуєте бали за нову покупку. Доступ до раніше накопичених балів через нову картку передбачає, зокрема, процедура PAYBACK. Не створюйте другий обліковий запис і не копіюйте на нього сам баланс. Також перевірте історію покупок, статус учасника, винагороди та терміни дії — залежно від функцій програми. У запропонованій моделі заміна носія не повинна скидати ці терміни або повторно запускати вітальний бонус. Зафіксуйте дату заміни та зв’язок обох карток з обліковим записом, щоб наступний працівник знав, що звернення вже опрацьовано. Але що робити, якщо клієнт пам’ятає 1250 балів, а система показує 1050? Не поповнюйте автоматично відсутні 200. Перевірте історію нарахувань, використань, коригувань і завершення терміну дії. Підозру на використання балів іншою особою розглядайте як окреме звернення для з’ясування. Сама заміна картки не визначає, чи потрібно відновлювати спірні бали.

Стару картку знайдено — не відновлюйте її автоматично

Через кілька днів клієнт знаходить картку в іншому гаманці. У запропонованій моделі вона залишається неактивною, а учасник користується новою. Не вважайте її автоматично додатковою карткою. Заплановане прив’язування кількох карток до облікового запису, можливе, наприклад, у PAYBACK, — це інша ситуація, ніж залишення активною картки, заявленої як втрачена. Протестуйте, чи стара картка відхиляється, а нова правильно нараховує бали та дає змогу користуватися винагородами. В інструкції також зазначте, як клієнт має повернути або знищити знайдений носій.

Перевірте процедуру за п’ятьма сценаріями

Перевірте процедуру також у менш очевидних ситуаціях:

  • Відсутність номера картки: чи може клієнт підтвердити доступ до облікового запису іншим передбаченим методом?
  • Неактуальний телефон або електронна пошта: чи знає працівник, кому передати справу, замість зміни даних без верифікації?
  • Розбіжність балансу: чи дає історія операцій змогу пояснити різницю, а клієнт знає, як повідомити про невпізнане використання балів?
  • Повторне звернення: чи бачить інший працівник завершену заміну та може допомогти без створення нового облікового запису або подвійного нарахування балів?
  • Знайдена картка: чи залишається вона неактивною також в іншому магазині тієї самої мережі, тоді як нова зберігає доступ до правильного облікового запису та переваг?

На завершення передайте чітке повідомлення: «Нову картку прив’язано до вашого попереднього облікового запису. Актуальний баланс становить 1250 балів. Попередня картка неактивна — не користуйтеся нею, навіть якщо знайдете її». Замінюйте картку, а не історію клієнта. Підтвердьте права, вимкніть старий носій і перевірте роботу нового — разом із доступом до балів та інших переваг.