Некоторые платежные шлюзы предлагают услугу хранения кредитных карт для последующей оплаты. TrustCommerce предоставляет эту функцию в своей службе Citadel, с которой я знаком. Я не уверен, что в PayPal есть что-то похожее.
Когда пользователь совершает свой первый платеж, он предоставляет вам информацию о кредитной карте, которую вы авторизуете и храните вместе со шлюзом. Шлюз дает вам уникальный идентификатор, чтобы вы могли снова снять эту кредитную карту. Это означает, что вы не должны нести ответственность за хранение данных кредитной карты самостоятельно.
response = TrustCommerce::Subscription.create(
:cc => '4111111111111111',
:exp => '0412',
:name => 'John Smith'
)
billing_id = response[:billingid]
response = TrustCommerce::Subscription.charge(
:billingid => billing_id,
:amount => 1000 # $10.00 amount is in cents
)
Извините, я не знаю, что PayPal может предложить в этой области, но я знаю, что есть много других шлюзов, которые делают это. Я настоятельно рекомендую вам проверить TrustCommerce, вы можете использовать ActiveMerchant или TrustCommerce Gem