Class: Momoapi::Collection

Inherits:
Client
  • Object
show all
Defined in:
lib/momoapi-ruby/collection.rb

Instance Method Summary collapse

Methods inherited from Client

#handle_error, #interpret_response, #prepare_get_request, #send_request

Instance Method Details

#get_auth_tokenObject



12
13
14
15
# File 'lib/momoapi-ruby/collection.rb', line 12

def get_auth_token
  path = 'collection/token/'
  super(path, Momoapi.config.collection_primary_key)
end

#get_balanceObject



17
18
19
20
# File 'lib/momoapi-ruby/collection.rb', line 17

def get_balance
  path = '/collection/v1_0/account/balance'
  super(path, Momoapi.config.collection_primary_key)
end

#get_transaction_status(transaction_id) ⇒ Object



22
23
24
25
# File 'lib/momoapi-ruby/collection.rb', line 22

def get_transaction_status(transaction_id)
  path = "/collection/v1_0/requesttopay/#{transaction_id}"
  super(path, Momoapi.config.collection_primary_key)
end

#is_user_active(phone_number) ⇒ Object



63
64
65
66
# File 'lib/momoapi-ruby/collection.rb', line 63

def is_user_active(phone_number)
  path = "/collection/v1_0/accountholder/msisdn/#{phone_number}/active"
  super(path, Momoapi.config.collection_primary_key)
end

#request_to_pay(phone_number, amount, external_id, payee_note = '', payer_message = '', currency = 'EUR', **options) ⇒ Object

This method is used to request a payment from a consumer (Payer). The payer will be asked to authorize the payment. The transaction will be executed once the payer has authorized the payment. The requesttopay will be in status PENDING until the transaction is authorized or declined by the payer or it is timed out by the system. The status of the transaction can be validated by using ‘get_transation_status`



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/momoapi-ruby/collection.rb', line 34

def request_to_pay(phone_number, amount, external_id,
                   payee_note = '', payer_message = '',
                   currency = 'EUR', **options)
  uuid = SecureRandom.uuid
  headers = {
    "X-Target-Environment": Momoapi.config.environment || 'sandbox',
    "Content-Type": 'application/json',
    "X-Reference-Id": uuid,
    "Ocp-Apim-Subscription-Key": Momoapi.config.collection_primary_key
  }
  if options[:callback_url]
    headers['X-Callback-Url'] = options[:callback_url]
  end
  body = {
    "payer": {
      "partyIdType": 'MSISDN',
      "partyId": phone_number
    },
    "payeeNote": payee_note,
    "payerMessage": payer_message,
    "externalId": external_id,
    "currency": currency,
    "amount": amount.to_s
  }
  path = '/collection/v1_0/requesttopay'
  send_request('post', path, headers, body)
  { transaction_reference: uuid }
end