Class: Payr::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/payr/client.rb

Instance Method Summary collapse

Instance Method Details

#check_response(query) ⇒ Object



40
41
42
43
44
# File 'lib/payr/client.rb', line 40

def check_response query
  params = re_build_query query
  signature = get_signature query
  signed? params, signature
end

#check_response_ipn(params) ⇒ Object

QQQ Improve to use re_build_ipn_query



47
48
49
50
51
# File 'lib/payr/client.rb', line 47

def check_response_ipn params
  signature =  get_signature params
  query_params = re_build_query params
  signed? query_params, signature
end

#get_paybox_params_from(params) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/payr/client.rb', line 8

def get_paybox_params_from params
  raise ArgumentError if params[:command_id].nil? || params[:buyer_email].nil? || params[:total_price].nil?
  raise ArgumentError if params[:callbacks].nil?
  command_timestamp = Time.now.utc.iso8601
  returned_hash = { pbx_site: Payr.site_id, 
                    pbx_rang: Payr.rang,
                    pbx_identifiant: Payr.paybox_id,
                    pbx_total: params[:total_price],
                    pbx_devise: convert_currency,
                    pbx_cmd: params[:command_id],
                    pbx_porteur: params[:buyer_email],
                    pbx_retour: build_return_variables(Payr.callback_values),
                    pbx_hash: Payr.hash.upcase,
                    pbx_time: command_timestamp }

  # optionnal parameters
  returned_hash.merge!(pbx_typepaiement: Payr.typepaiement, 
                       pbx_typepcarte: Payr.typecard) unless Payr.typepaiement.nil? || Payr.typecard.nil?

  returned_hash.merge!(pbx_effectue: params[:callbacks][:paid],
                       pbx_refuse:   params[:callbacks][:refused],
                       pbx_annule:   params[:callbacks][:cancelled],
                       pbx_repondre_a: params[:callbacks][:cancelled])      

  returned_hash.merge!(pbx_repondre_a: params[:callbacks][:ipn])

  base_params = self.to_base_params(returned_hash)     

  returned_hash.merge(pbx_hmac: self.generate_hmac(base_params))
end

#select_server_urlObject



53
54
55
56
57
# File 'lib/payr/client.rb', line 53

def select_server_url
  [Payr.paybox_url, Payr.paybox_url_back_one, Payr.paybox_url_back_two].each do |url|
    return url if check_server_availability(url)
  end
end