Class: DPay::CardService

Inherits:
Object
  • Object
show all
Defined in:
lib/dpay/card/card_service.rb,
sig/dpay/card/card_service.rbs

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ CardService

Returns a new instance of CardService.

Parameters:



5
6
7
# File 'lib/dpay/card/card_service.rb', line 5

def initialize(api)
  @api = api
end

Instance Method Details

#apple_pay(transaction_id, request) ⇒ CardPaymentResult

Parameters:

Returns:



33
34
35
# File 'lib/dpay/card/card_service.rb', line 33

def apple_pay(transaction_id, request)
  post(transaction_id, "/pay/apple-pay", request.to_body)
end

#cancel(transaction_id, amount = nil) ⇒ CardPaymentResult

Parameters:

  • transaction_id (String)
  • amount (Money, nil) (defaults to: nil)

Returns:



25
26
27
# File 'lib/dpay/card/card_service.rb', line 25

def cancel(transaction_id, amount = nil)
  post(transaction_id, "/cancellation", amount.nil? ? {} : { "amount" => amount.to_decimal.to_f })
end

#capture(transaction_id, amount) ⇒ CardPaymentResult

Parameters:

  • transaction_id (String)
  • amount (Money)

Returns:



21
22
23
# File 'lib/dpay/card/card_service.rb', line 21

def capture(transaction_id, amount)
  post(transaction_id, "/capture", { "amount" => amount.to_decimal.to_f })
end

#google_pay(transaction_id, request) ⇒ CardPaymentResult

Parameters:

Returns:



29
30
31
# File 'lib/dpay/card/card_service.rb', line 29

def google_pay(transaction_id, request)
  post(transaction_id, "/pay/google-pay", request.to_body)
end

#pay_otp(transaction_id, request) ⇒ CardPaymentResult

Parameters:

Returns:



13
14
15
# File 'lib/dpay/card/card_service.rb', line 13

def pay_otp(transaction_id, request)
  post(transaction_id, "/pay/card-otp", request.to_body)
end

#post(transaction_id, suffix, body) ⇒ CardPaymentResult

Parameters:

  • transaction_id (String)
  • suffix (String)
  • body (Hash[String, untyped])

Returns:



39
40
41
42
43
44
45
# File 'lib/dpay/card/card_service.rb', line 39

def post(transaction_id, suffix, body)
  path = "/api/v1_0/cards/payment/#{Internal::PHP.raw_url_encode(transaction_id)}#{suffix}"
  data = @api.post_json(Internal::BaseUrls::API_PAYMENTS, path, body)
  raise CardPaymentError.from_api(data) unless data["success"] == true

  CardPaymentResult.from_api(data)
end

#pre_auth(transaction_id, request) ⇒ CardPaymentResult

Parameters:

Returns:



17
18
19
# File 'lib/dpay/card/card_service.rb', line 17

def pre_auth(transaction_id, request)
  post(transaction_id, "/pay/card-pre-auth", request.to_body)
end

#public_keyString

Returns:

  • (String)


9
10
11
# File 'lib/dpay/card/card_service.rb', line 9

def public_key
  @api.get_text(Internal::BaseUrls::API_PAYMENTS, "/api/v1_0/cards/public-key").strip
end