Это может быть субъективный вопрос, но я попробую.
В SO уже есть ряд вопросов, которые касаются управления выставлением счетов за подписку. В настоящее время я работаю над решением SaaS, для которого потребуется полностью автоматизированная биллинговая система.
То, что я не ищу, задавая этот вопрос, - это не совет по внедрению к определенному платежному шлюзу или тому подобное. Вместо этого я хотел бы получить совет о том, какой подход выбрать.
Мне нужна функциональность - это система, которая может обрабатывать обновления, переходы на более ранние версии, повторное выставление счетов, отмены и т. Д. Первоначально только для одного продукта, но со временем может потребоваться, чтобы система могла обрабатывать несколько продуктов (по продуктам, которые я означает принципиально разные продукты, а не разные варианты одного и того же продукта).
На мой взгляд, существует ряд возможных подходов, когда вам нужно такое решение:
- Кодируйте биллинговый сервер самостоятельно , который поддерживает это и отделен от каждого продукта, чтобы он мог обрабатывать несколько независимых продуктов.
- Используйте размещенное решение как Периодически , Зарядка , Свободно или CheddarGetter .
Преимущество использования размещенного решения, очевидно, заключается в том, что вам не требуется сертификация PCI, проблема передается на аутсорсинг, а запуск и запуск намного быстрее. Однако эти преимущества имеют свою цену: самая важная функция поддержки для вашего продукта - то есть выставление счетов не находится под вашим контролем. Кроме того, у вас меньше контроля и гибкости.
Что бы вы сделали? Если мы посмотрим за пределы требований PCI, я бы определенно предпочел иметь систему с внутренним кодированием, которая могла бы выполнять эту работу. С другой стороны, я слышал из многочисленных источников, что кодирование такой системы - это боль.
Любой совет высоко ценится. Кроме того, если вы посоветуете кодировать его самостоятельно, любой опыт о том, как это сделать или есть какие-либо проекты с открытым исходным кодом (независимо от языка, что я ищу, это не код, а структура), из которого я могу извлечь выгоду, действительно значит много.