Class: Vpago::TrueMoney::Checkout

Inherits:
Base
  • Object
show all
Defined in:
lib/vpago/true_money/checkout.rb

Constant Summary

Constants inherited from Base

Base::CONTENT_TYPE_JSON, Base::DEFAULT_ALGORITHM, Base::DEFAULT_KEY_VERSION, Base::TOKEN_HEADERS

Instance Method Summary collapse

Methods inherited from Base

#access_token, #access_token_url, #algorithm, #amount, #android_package_name, #check_transaction_url, #client_id, #client_secret, #currency, #default_headers, #external_ref_id, #fetch_access_token, #generate_payment_url, #initialize, #jwt_payload, #key_version, #order, #order_jwt_token, #parse_json, #payload, #payment_method, #private_key, #query_string, #redirect_type, #refund_url, #return_deeplink, #return_url_scheme, #service_type, #signature, #signature_input, #timestamp, #user_type

Constructor Details

This class inherits a constructor from Vpago::TrueMoney::Base

Instance Method Details

#generate_payment_urls(_platform) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/vpago/true_money/checkout.rb', line 4

def generate_payment_urls(_platform)
  request_body = {
    payment_info: payload.to_json,
    redirectionType: redirect_type,
    merchantDeepLink: return_deeplink,
    merchantAndroidPackageName: android_package_name,
    refererLink: @payment.processing_url
  }

  response = Faraday.post(generate_payment_url) do |req|
    req.headers = default_headers
    req.body = request_body.to_json
  end

  body = parse_json(response.body)

  {
    webview: body['data']['webview'],
    deeplink: body['data']['deeplink']
  }
rescue Faraday::Error, JSON::ParserError, NoMethodError => e
  Rails.logger.error("Failed to generate payment URL: #{e.class} - #{e.message}")
  raise
end