32

Przygotowujemy się do wydania dużej aplikacji internetowej, która była rozwijana przez ostatni rok. Niedługo rozpoczniemy proces integracji ActiveMerchant, aby obsłużyć powtarzające się opłaty za subskrypcję usługi.Powtarzające się płatności za pomocą Railsów i ActiveMerchant: najlepsze praktyki, pułapki, gotchas?

Szukam wszelkich porad dotyczących najlepszych praktyk, biorąc pod uwagę nasze wymagania (wymienione poniżej) i wszelkie dodatkowe uwagi dotyczące typowych pułapek lub konkretnych problemów, które powinienem poświęcić szczególną uwagę. Brama płatności, której będziemy używać, to PaymentExpress, ponieważ jest to jedna z niewielu obsługiwanych bram, które mają powtarzające się fakturowanie i nie ma żadnych specjalnych warunków dla firm działających poza USA. Firma za tą aplikacją jest oparta na Wielkiej Brytanii.

Użytkownicy aplikacji tworzą konto z subdomeną, do której mają dostęp i dostosowują aplikację oraz ich dane. Poniżej znajdują się niektóre z wymagań/funkcji, które mogłyby mieć wpływ na sposób działania rozliczeniowe:

  • Wszystkie użytkownicy otrzymują 30 dniowy okres próbny
  • Istnieją różne plany, w tym bezpłatne jeden
  • droższych plany Większe limity ilości danych (np. użytkownicy, projekty itp.) mogą mieć na koncie:
  • Okres rozliczeniowy będzie wynosił co miesiąc, począwszy od okresu próbnego
  • Będą rabaty/kody kuponów, aby uzyskać procent od wartości normalnej cena za rok na plany, itp.
  • cenowa
  • Plan zmieni jak funkcje są dodawane

szczególne przeszkody mogą Przewiduję będzie rzeczy w tym następujące:

  • Jak obsługiwać obniżamy gdy naruszają granice planu dla niższych planów szczebla.
  • Zachowanie w przypadku wygaśnięcia ważności kart kredytowych lub płatności nie są realizowane (może być wymuszony tryb tylko do odczytu)
  • W przypadku zmiany cen planu, chcemy uhonorować poprzednie ceny dla obecnych użytkowników przez określony czas (np. 6 miesięcy), a następnie zacznij naliczać wyższe stawki. Jeśli cena planu spadnie, zacznie obowiązywać natychmiast.

Innymi poradami, które byłyby pomocne, byłyby wszystko, co dotyczy przepływu wniosku. W jaki sposób należy przedstawiać formularz rozliczeniowy użytkownikowi? Kiedy należy podać dane karty kredytowej? W jaki sposób faktury powinny być wysyłane, przechowywane i dostępne?

Chciałbym ujawnić, że planujemy oprzeć dużo kodu kodu off SaaSy. SaaSy został zaprojektowany jako osobna aplikacja Railsowa, która obsługuje całą stronę rejestracji i zarządzania kontem. Nie działa to jednak dla nas, ponieważ nigdy nie planowaliśmy tego od samego początku i byłby to żmudny proces dostosowania naszej aplikacji do pracy w ten sposób. W związku z tym będziemy czerpać kod i pomysły z SaaSy i łączyć je w naszą aplikację, znacznie mniej żmudne zadanie.

Odpowiedz

5

RailsKits ma Software as a Service kit, który powinien zrobić to, czego potrzebujesz. Posiada wbudowaną obsługę darmowych testów, aktualizacji, obniżania, limitów planu itp. I obsługuje PaymentExpress (i kilka innych).

Zbadałem go trochę pod kątem projektu, który robię, ale jeszcze go nie kupiłem, więc nie mogę ręczyć za to.Jednak widziałem kilka wpisów na blogu chwalących ten zestaw.

Podczas gdy RailsKit jest względnie tani, gdy porówna się koszt wdrożenia wszystkich jego funkcji, istnieje kilka wersji open source, które dążą do osiągnięcia tego samego. Ten, który pamiętam ze szczytu mojej głowy nazywa się Freemium.

EDYCJA: Zapomniałem wspomnieć, że Ryan Bates powiedział w swoim numerze most recent Railscast, że jego kolejny odcinek lub dwa będą dotyczyły powtarzających się rachunków, więc miej oko na to. Zazwyczaj robi jeden odcinek na tydzień, a pięć, które ukończył od 22 grudnia, obejmuje wszystkie płatności za obsługę różnych typów.

+0

Tak, śledziłem screeny od Ryana i widziałem także RailsKit.Problem polega na tym, że RailsKit został zaprojektowany jako punkt wyjścia dla aplikacji, a nie jako dodatek do istniejącego. Moje pytanie jest mniej techniczne niż najlepsze wzornictwo w architekturze/wzornictwie. W każdym razie dzięki! –

+0

BTW, wiele osób korzysta z zestawu SaaS Rails Kit z już istniejącą aplikacją ... po prostu kopiują modele, kontrolery itp. Nie trzeba więc zaczynać od zera, aby z niego korzystać. –

4

Peepcode ma plik PDF na sprzedaż (70 stron) zawierający szczegółowe informacje na temat różnych aspektów przetwarzania płatności i praktyk branżowych. To może być warto sprawdzić:

http://peepcode.com/products/activemerchant-pdf

+0

Spojrzałem na książkę, szukałem czegoś więcej niż to –

+0

Książka zapewnia doskonały przegląd procesu i zawiera wiele fragmentów kodu. Autor obejmuje również musiał stworzyć testy jednostkowe. Dostępna jest również przykładowa aplikacja: moneyhaty. Świetna treść i wartość za bardzo przystępną cenę. –

8

Jedno chciałem dodać: należy pamiętać, że nie ma potrzeby korzystania z funkcji rozliczeniowych cykliczne, który jest wbudowany w bramie. Ogólnie rzecz biorąc, systemy te są przestarzałe i bardzo trudne do pokonania, jesteśmy rozpieszczani światem szyn.

Otrzymujesz o wiele większą elastyczność, używając ich tylko w jednym celu (do wystawienia rachunku na kartę kredytową, a może także przechowywania kart kredytowych w celu uzyskania zgodności z PCI). Następnie przetrenuj swoje powtarzające się rachunki w aplikacji rails za pomocą zadania cron, pola daty, za które są opłacane, i kwoty, którą każda osoba płaci (w przypadku, gdy korzystały z kuponu) itd.

Jeden mały przykład: czasami ludzie anulują miesięczny abonament w połowie miesiąca. Chcą się upewnić, że nie zapomną anulować przed następną płatnością. Większość płatności cyklicznych, które widziałem, natychmiast zamknie konto (lub wyśle ​​ci wiadomość informującą o tym). W rzeczywistości użytkownik zapłacił do końca miesiąca i powinien otrzymać kolejne 2 tygodnie dostępu. Możesz to zrobić, jeśli włączyłeś swoje powtarzające się fakturowanie w szynach, ale nie, jeśli korzystasz z powtarzających się opłat za korzystanie z bramy. To tylko mały przykład.

3

Jestem również w trakcie tworzenia witryny opartej na subskrypcji i są to nasze aktualne wymagania. Mogą Ci pomóc w zakresie najlepszej praktyki:

  • Użytkownicy będą mogli wybrać jeden z planów subskrypcji.
  • Użytkownicy będą musieli podać swoje dane karty kredytowej , aby zapisać się na wybrany przez siebie plan.
  • Wszystkie główne karty kredytowe i debetowe muszą być akceptowane jako , w tym Maestro i American Express.
  • Każdy plan ma 30-dniowy bezpłatny okres próbny , więc karty kredytowe użytkowników powinny być obciążane tylko po upływie 30-dniowego okresu . Jednak ważność kart kredytowych należy sprawdzić pod numerem w momencie rejestracji.
  • Użytkownicy będą wysłane przez kilka dni przed ich karty kredytowej naładowane aby powiadomić ich, że będą one pobierana wkrótce, o ile nie zrezygnować konto. Jeśli anulują swoje konto w ciągu 30-dniowego bezpłatnego okresu próbnego, ich karta kredytowa nie zostanie obciążona.
  • Po upływie dowolnego bezpłatnego okresu próbnego, użytkownicy zostaną obciążeni z góry za korzystanie z systemu z - tj. Będą przedpłaceni w wysokości .
  • Użytkownicy będą obciążani automatycznie co miesiąc za wybrany przez siebie abonament . Co miesiąc użytkownicy otrzymają wiadomość e-mail na numer z kilkutygodniowym wyprzedzeniem, aby powiadomić o nich , że zostaną obciążeni. Po dokonaniu płatności użytkownicy otrzymają e-mailem fakturę z informacją, że otrzymano ich płatność .
  • Użytkownicy będą mogli w każdej chwili zaktualizować swoje konta lub zmienić je na . Po uaktualnieniu/obniżeniu przez użytkownika ich następna opłata za subskrypcję będzie wynosić nowej stawki. Użytkownicy będą mogli tylko obniżyć ich konta do planu , który może obsłużyć ich dane. W przypadku przykładu , jeśli obecnie mają one 10 aktywnych projektów, nie mogą obniżyć wersji do planu podstawowego, ponieważ podstawowy plan zezwala tylko na 5 projektów. One będą musiały usunąć lub zarchiwizować 5 projektów, zanim będą mogły przejść na wersję podstawową do wersji .
  • Użytkownicy będą mogli zalogować się na swoje konto i zmienić lub zaktualizować swoje dane karty kredytowej .
  • Użytkownicy mogą w dowolnej chwili anulować swoje konto . Po użytkownik nie będzie już pobierać żadnych opłat subskrypcji po anulowaniu konta przez użytkownika. Jednak użytkownicy nie otrzymają zwrotu kwoty za za część miesiąca, za którą zapłacili już .
  • Wszystkie części systemu płatności muszą być zgodne z w 100% zgodnymi ze standardem PCI DSS; w tym systemów innych firm.
  • System płatności musi obsługiwać automatyczne powiadomienia i ponowienie nieudanych odnowień subskrypcji.
  • System płatności musi obsługiwać kupony rabatowe z datą wygaśnięcia.
  • Dane karty kredytowej nie musi być przetwarzane lub przechowywane na naszych serwerach
  • one zawsze powinny być przetwarzane/przechowywane przez naszego partnera 3rd party przetwarzania płatności. Nie ponosimy odpowiedzialności za zabezpieczenie tych informacji i przestrzeganie przepisów i regulacji prawnych .
  • Użytkownicy będą mogli zalogować się na swoje konta i wyświetlić pełną historię płatności obejmującą daty i kwoty opłacone. Musimy również być w stanie zalogować się do systemu, aby zobaczyć plany płatności dla klientów i historię płatności . Będzie to niezbędne dla obsługi klienta .

Szukaliśmy również http://chargify.com/, która wygląda na to, że może zaoszczędzić sporo czasu na kodowanie.