class StarkitBanking::YBL::Payment::ByIMT

Private Instance Methods

credentials(payment) click to toggle source
# File lib/starkit_banking/api/ybl/payment/imt.rb, line 18
def credentials(payment)
  payment.payment_account.credentials
end
invoke(env, req, callbacks) click to toggle source
# File lib/starkit_banking/api/ybl/payment/imt.rb, line 13
def invoke(env, req, callbacks)
  ApiBanking::InstantMoneyTransferService.transfer(env, req, callbacks)
  # send email
end
request(subscription, payment) click to toggle source
# File lib/starkit_banking/api/ybl/payment/imt.rb, line 26
def request(subscription, payment)
  request = ApiBanking::InstantMoneyTransferService::InitiateTransfer::Request.new()

  # every payment is identified by its ID, repeated API attempts can be identified when the ID is used as the URN
  @req_reference = request.uniqueRequestNo = payment.id

  request.appID = subscription.app_id
  request.customerID = payment.payment_account.customer_id
  request.beneficiaryMobileNo = payment.beneficiary_mobile_no
  request.transferAmount = payment.transfer_amount
  request.passCode = payment.imt_passcode
  request.remitterToBeneficiaryInfo = payment.transfer_description

  request
end
response(res) click to toggle source
# File lib/starkit_banking/api/ybl/payment/imt.rb, line 22
def response(res)
  Transfer::Status.new('INITIATED', res.initiateTransferResult.bankReferenceNo, 'IMT')
end
service_name() click to toggle source
# File lib/starkit_banking/api/ybl/payment/imt.rb, line 9
def service_name
  'IMT TRANSFER'
end
subscription(payment) click to toggle source
# File lib/starkit_banking/api/ybl/payment/imt.rb, line 42
def subscription(payment)
  payment.payment_account.service_subscriptions.find_by(service_name: service_name)
end