Ruby on Rails SDK for CamPay Payment Gateway
CamPay is a Fintech service of the company TAKWID
GROUP which launched its financial services in Cameroon
from January 2021.
We provide businesses and institutions with solutions for
collecting and transferring money online, via primarily
Mobile Money(MTN and Orange).
With CamPay, simplify the purchasing experience for
your customers thanks to our mobile money
payment solutions, accessible via your website
and/or mobile application.
Summary
Getting Started
These instructions will get you started with the CamPay SDK for development and testing purposes. See deployment
for notes on how to deploy the project on a live system.
Prerequisites
- Create an account on CamPay platform
- Register an application under your account.
- Expand your registered application to get access to your API keys
Installing
gem install campay
or
gem campay
Running the samples
- If you plan to use
.env
then add:
gem 'dotenv'
to your gemfile in order to save your secret credentials
campay = Campay::CamPay.new(
ENV.fetch('PAY_UNIT_API_USERNAME'),
ENV.fetch('PAY_UNIT_API_PASSWORD'),
ENV.fetch('PAY_UNIT_MODE'))
To collect payments from your client - DIRECTLY
collect = collect(
amount, #The amount you want to collect
currency, #XAF
from, #Phone number to request amount from - Must include country code
description, #some description
external_reference #Reference from the system initiating the transaction
)
puts collect
#{"reference": "bcedde9b-62a7-4421-96ac-2e6179552a1a", "external_reference":"12345678", "status": "SUCCESSFUL", "amount": 5, "currency": "XAF", "operator": "MTN", "code": "CP201027T00005", "operator_reference": "1880106956" }
status can be SUCCESSFUL or FAILED
To collect payments from your client - using PAYMENT LINKS
link = campay.fetch_payment_link(
amount,
currency,
from,
description,
reference,
redirect_url
)
'''
Redirect your customer to the returned payment link
'''
status can be SUCCESSFUL or FAILED
To disburse
Please enable API withdrawal under app settings before trying this request
disburse = campay.disburse(
amount,
currency,
to,
description,
external_reference
)
puts disburse
#{"reference": "bcedde9b-62a7-4421-96ac-2e6179552a1a", "external_reference":"12345678", "status": "SUCCESSFUL", "amount": 5, "currency": "XAF", "operator": "MTN", "code": "CP201027T00005", "operator_reference": "1880106956" }
status can be SUCCESSFUL or FAILED
To Get application balance.
balance = campay.fetch_balance
puts balance
#{"total_balance": 0, "mtn_balance": 0, "orange_balance": 0, "currency": "XAF"}
Transfer Airtime
Please enable API withdrawal under app settings before trying this request
airtime = campay.transfer_airtime(
amount,
to,
external_reference
)
puts airtime
#{"reference": "bcedde9b-62a7-4421-96ac-2e6179552a1a", "external_reference":"12345678", "status": "SUCCESSFUL", "amount": 5, "currency": "XAF", "operator": "MTN", "code": "CP201027U00005", "operator_reference": "1880106956" }
status can be SUCCESSFUL or FAILED
✒️ Authors
👤 Stanley Enow Lekunze
👤 CHE NSOH BLANCHARD
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the Campay project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.