lib/payanyway/controller.rb in payanyway-2.0.1 vs lib/payanyway/controller.rb in payanyway-2.0.2
- old
+ new
@@ -1,93 +1,99 @@
module Payanyway
module Controller
extend ActiveSupport::Concern
included do
- skip_before_filter :verify_authenticity_token
+ protect_from_forgery with: :null_session
end
def pay
- request = Payanyway::Request::Pay.new(params)
+ request = Payanyway::Request::Pay.new(permitted_params)
request.success? ?
pay_implementation(request.pretty_params) :
Rails.logger.error(request.error_message)
- render text: request.response
+ render plain: request.response
end
def success
- request = Payanyway::Request::Base.new(params)
+ request = Payanyway::Request::Base.new(permitted_params)
success_implementation(request.pretty_params)
end
def fail
- request = Payanyway::Request::Base.new(params)
+ request = Payanyway::Request::Base.new(permitted_params)
fail_implementation(request.pretty_params[:transaction_id])
end
def return
- request = Payanyway::Request::Base.new(params)
+ request = Payanyway::Request::Base.new(permitted_params)
return_implementation(request.pretty_params[:transaction_id])
end
def in_progress
- request = Payanyway::Request::Base.new(params)
+ request = Payanyway::Request::Base.new(permitted_params)
in_progress_implementation(request.pretty_params[:transaction_id])
end
def check
- request = Payanyway::Request::Check.new(params)
+ request = Payanyway::Request::Check.new(permitted_params)
if request.pretty_params.present?
raise request.error_message unless request.success?
render xml: request.response(check_implementation(request.pretty_params)).to_xml
else
# Не выдавать ошибку, если параметры пустые
# Необходимо для проверки со стороны moneta.ru
- render nothing: true
+ head :ok
end
end
private
+ def permitted_params
+ params.permit! if params.respond_to?(:permit!)
+ params.to_h
+ end
+
def pay_implementation(params)
# Вызывается после успешного прохождения
# запроса об оплате от payanyway.ru
Rails.logger.info("PAYANYWAY: Success paid order #{ params[:transaction_id] }")
end
def success_implementation(params)
# Вызывается после успешной оплаты
+ puts Rails.logger.object_id
Rails.logger.info("PAYANYWAY: Called success payment url for order '#{ params[:transaction_id] }'")
- render nothing: true
+ head :ok
end
def fail_implementation(transaction_id)
# Вызывается после ошибки при оплате
Rails.logger.error("PAYANYWAY: Fail paid order '#{ transaction_id }'")
- render nothing: true
+ head :ok
end
def return_implementation(transaction_id)
# Вызывается при добровольном отказе пользователем от оплаты
Rails.logger.info("PAYANYWAY: Return from payanyway. Order '#{ transaction_id }'")
- render nothing: true
+ head :ok
end
def in_progress_implementation(transaction_id)
# Вызывается после успешного запроса на авторизацию средств, до подтверждения списания и зачисления средств
Rails.logger.info("PAYANYWAY: Order '#{ transaction_id }' in progress")
- render nothing: true
+ head :ok
end
def check_implementation(params)
# Ответ на запрос о проверке заказа
# { amount: AMOUNT, state: STATE, description: description, attributes: ATTRIBUTES, logger: logger }