К проблемам с кредитными картами предъявляются строгие требования (Google «Соответствие PCI») по хранению данных кредитных карт.
Существует, по крайней мере, один платежный шлюз, который позволяет передавать на аутсорсинг материалы о соответствии: http://www.braintreepaymentsolutions.com/
В прошлый раз, когда я смотрел, вы могли запустить начальную транзакцию и получить токен. Этот токен может быть использован для будущих платежей с карты, но только вами. Ребята из платежного шлюза позаботятся о сохранении фактических данных кредитной карты.
Насколько я знаю (и я не делаю тонны обработки карт), это, вероятно, лучшее решение, если вам нужно произвести произвольные обвинения с одной и той же карты.
Если все, что вам нужно, это какой-то периодический сбор (установленная сумма через равные промежутки времени), большинство платежных шлюзов (на ум приходит authorize.net) могут быть настроены для этого.
В конце концов, если вы не имеете дело с особенно большим бюджетом, вам лучше отдать на аутсорсинг карту # хранилище. Делать это самостоятельно - слишком большая ответственность.
(Изменить: Что касается хранения вещей в сеансе - да, вы, вероятно, можете сойти с рук, но вам, вероятно, следует избегать этого. Просто сделайте начальный процесс аутентификации / захвата при отправке информации CC).