Підписки у ABBYY Cloud OCR SDK: «заткніться і візьміть мої гроші!»

Хороша новинаТМ: ABBYY Cloud OCR SDK крім разової покупки сторінок можна оформити підписку через PayPal. Ми довго планували цю розробку, досить довго вона була в стані бети для обмеженого кола користувачів. Зараз підписки доступні всім, а цей пост – про різних технічних і соціальних моментах цієї епічної розробки.

Почати потрібно з відповіді на питання «навіщо». Відповідь на нього: підписки зручні та зрозумілі багатьом користувачам. Хоча купувати пакети сторінок теж зручно і нескладно, користувачеві потрібно стежити за залишком сторінок додатки і докуповувати сторінки. Сервіс уміє відправляти попередження про швидке вичерпання залишку сторінок, але користувач може його пропустити. Якщо користувач забуде докупити сторінки – його програма може в самий невідповідний момент доизрасходовать залишок сторінок і перестати працювати.

Капітан підказує рішення: автоматизація. Користувач може продовжувати докуповувати пакети сторінок, а може оформити підписку. Звичайно, передплату можна припинити в будь-який момент, у цьому випадку позитивний залишок сторінок не зміниться, його можна буде витратити пізніше.

Ми намагалися зробити логіку підписок як можна більш зрозумілою і одночасно зручною для користувачів.

Всі підписки у сервісі – з щомісячним поповненням залишку сторінок: раз в місяць списується відповідна сума і залишок поповнюється до обумовленого числа. Кількість сторінок, які можна обробити, в принципі не обмежена – можна «йти в мінус», але за це пізніше доведеться доплатити, доплата списується автоматично. «Відхід в мінус» – це дуже важлива можливістьTM, вона захищає додатки від раптової зупинки в разі вичерпання щомісячного обсягу підписки.

Якщо «мінус» не дуже глибокий, в кінці періоду буде списано не тільки щомісячна плата, але й плата за сторінки, оброблені понад нарахованого обсягу. Якщо додаток користувача обробляє багато сторінок і залишок іде в глибокий мінус, сервіс, не чекаючи чергового щомісячного списання, автоматично донараховує користувачеві стільки сторінок, щоб залишок став нульовим, і списує з користувача оплату за нараховані сторінки.

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

При такій схемі донарахування сторінок між щомісячними списаннями користувачі можуть швидше реагувати, якщо їх застосування стали обробляти більше сторінок, ніж вони припускали раніше. Найбільш очевидні можливі причини – збільшення обсягів оброблюваних або логічна помилка в додатку користувача. ВКРАЙ НЕСПОДІВАНО дізнатися про списання накопиченої за місяць десятикратної вартості підписки у кінці місяця – сумнівна радість.

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

Передплати працюють на основі «reference transactions» в PayPal.

При створенні підписки сервіс викликає у PayPal метод CreateBillingAgreement, який повертає посилання на сторінку підтвердження на сайті PayPal. Користувач переходить на сайт PayPal і там підтверджує створення «угоди про списання» (billing agreement). Далі сервіс, вказуючи ідентифікатор угоди, може списувати з користувача практично будь-які суми в будь-який момент, викликаючи метод DoReferenceTransaction.

Сервіс викликає DoReferenceTransaction один раз відразу після успішного виконання CreateBillingAgreement, потім – кожен раз як проходить місяць з попереднього щомісячного списання і кожен раз як буде досягнутий поріг, при якому потрібно донараховувати сторінки між щомісячними списаннями. Сума списання кожен раз обчислюється в залежності від причини конкретного списання та кількість сторінок, що вона може бути різною.

Так, саме так – можна взяти і списати довільний потрібний момент стільки, скільки спишеться майже будь-яку суму.

PayPal reference transactions – це дуже потужний механізм. При роботі з ним потрібно відстежувати, записувати на стороні сервісу) всі виконані списання і їх суми, а також приймати всі розумні технічні заходи, щоб по можливості зменшити кількість логічних помилок, які могли б призвести до несправедливим списань.

Користувач, звичайно, бачить все списання свого облікового запису в PayPal і в разі незгоди з будь-яким списанням може вирішити його оскаржити – як правило, при використанні PayPal. Велика кількість несправедливих списань не тільки може зіпсувати репутацію сервісу, але й неабияк додасть роботи його власникам – потрібно буде реагувати на претензії, перегляд стрічки з котиками і розробку часу не залишиться.

Важливо зробити так, щоб реалізація логіки списань була надійною, передбачуваною і перевіряється, але цього недостатньо. Дуже важливо також зробити, щоб списання були максимально зрозумілими для користувачів.

Найголовніше – у користувачів не повинно залишатися і тіні сумніву, що підписка безстрокова і діє до моменту його відміни. Мало написати у вітрині «щомісячний платіж – стільки-то грошей», потрібно явно вказувати у вітрині і повідомленнях, що щомісячна плата за підписку стягується автоматично і безумовно до тих пір, поки підписка не скасована.

Також хорошим тоном вважається попереджати про списання щомісячної плати за кілька днів – буває, користувачі підписуються, потім перестають користуватися сервісом і забувають про підписку. Зручніше і ефективніше попередити їх і дати їм заздалегідь скасувати підписку, ніж потім вони звернуться в підтримку або спробують оскаржити списання в PayPal. Якщо будуть підстави вважати, що його ввели в оману, він може звернутися до місцевого регулятора або в суд, витрати в такому випадку будуть набагато більше списаної щомісячної плати.

Неправильно: «ми списали у вас щомісячну плату за підписку». Правильно: «ми списали у вас щомісячну плату і будемо списувати її і далі кожен місяць, поки ви не скасуєте підписку на ось цій сторінці [посилання]».

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

Якщо зробити правильно, користувачі не тільки з задоволенням розлучаються з грошима, але і запитують: «куди засунути картку, щоб ВЖУХ – і саме списувалося скільки потрібно». З підписками їм більше не потрібно стежити за залишком сторінок і нестерпно втомлює кілька разів клацнувши мишею для кожної їх докупки.

Дмитро Мещеряков,
департамент продуктів для розробників

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.