Если вы проверите исходный код ActiveMerchant
здесь , он ожидает 3 параметра.
def purchase(money, credit_card_or_referenced_id, options = {})
requires!(options, :ip)
commit define_transaction_type(credit_card_or_referenced_id), build_sale_or_authorization_request('Sale', money, credit_card_or_referenced_id, options)
end
Первый - это сумма денег, второй - номер кредитной карты или идентификационный номер, а третий - вариант, где он ожидает требуемый ip.Поскольку при вызове метода вы не передаете ссылку на кредитную карту, в хэше option
отсутствует ip
.