class Tinkoff::Request
Constants
- BASE_URL
Public Class Methods
new(path, params = {})
click to toggle source
# File lib/tinkoff/request.rb, line 5 def initialize(path, params = {}) @url = BASE_URL + path @params = params end
Public Instance Methods
perform()
click to toggle source
# File lib/tinkoff/request.rb, line 10 def perform prepare_params response = HTTParty.post(@url, body: @params, format: :json).parsed_response Tinkoff::Payment.new(response) end
Private Instance Methods
default_params()
click to toggle source
# File lib/tinkoff/request.rb, line 35 def default_params { TerminalKey: Tinkoff.config.terminal_key, Password: Tinkoff.config.password } end
prepare_data()
click to toggle source
Ключ=значение дополнительных параметров через “|”, например Email=a@test.ru|Phone=+71234567890
# File lib/tinkoff/request.rb, line 43 def prepare_data return unless @params[:DATA].present? @params[:DATA] = @params[:DATA].to_query.tr('&', '|') end
prepare_params()
click to toggle source
# File lib/tinkoff/request.rb, line 18 def prepare_params # Encode and join DATA hash prepare_data # Add terminal key and password @params.merge!(default_params) # Sort params by key @params = @params.sort.to_h # Add token (signature) @params[:Token] = token end
token()
click to toggle source
Params signature
# File lib/tinkoff/request.rb, line 30 def token values = @params.values.join Digest::SHA256.hexdigest(values) end