xplicit-dev / mamopay
The MamoPay PHP library provides convenient access to the MamoPay API from applications written in the PHP language. It includes a pre-defined set of classes for API resources that initialize themselves dynamically from API responses which makes it compatible with a wide range of versions of the Mam
Requires
- php: >=5.6.0
- ext-curl: *
This package is auto-updated.
Last update: 2024-11-02 11:26:19 UTC
README
The MamoPay PHP library offers seamless integration with the MamoPay API for PHP-based applications, streamlining access and enhancing functionality.
Requirements
A minimum of PHP 5.6.0 up to 8.1
Installation
You can install the package via Composer:
composer require xplicit-dev/mamopay
Getting Started
Obtain your API Key:
Log in to the MamoPay dashboard (https://dashboard.mamopay.com/manage/developer)
and navigate to the Developer section to get your API key.
Instantiate MamoPay Client:
use MamoPay\Api\MamoClient; $client = (new MamoClient('API_KEY'));
For sandbox testing, pass 'true' as second parameter:
$client = (new MamoClient('API_KEY',true));
The resources can be accessed via the $client
object. All the methods invocations follow the following pattern
// $client->class()->function() to access the API //Example $client->links()->get($linkId);
Supported Resources
Use of Unlisted Resources
The MamoClient SDK allows you to utilize resources not listed within this package. This flexibility enables you to leverage any additional resources provided by the MamoPay API without constraints.
use MamoPay\Api\MamoClient; $client = (new MamoClient('API_KEY')); $params = ['card_id' => $card_id, 'amount' => $amount, 'currency' => $currency]; $response = $client->httpClient->sendRequest('end_point',$params,HttpClient::METHOD_POST);
Links
The resource to generate vanilla and subscription payment links
- generate vanilla payment link:
see params here https://mamopay.readme.io/reference/post_links
$params = ['is_widget' => true , 'save_card'=>true]; $response = $client->links()->create($title,$amount,$returnUrl,$params);
this will return a \MamoPay\Api\Objects\PaymentLink object
refer: https://mamopay.readme.io/reference/payment-link-object
$id = $response->id; $payment_url = $response->payment_url;
- Fetching all Payment Links:
$client->links()->all();
- Update Payment Link:
$client->links()->update($linkID,$params);
- Delete Payment Link:
$client->links()->delete($linkID);
- Fetch Payment Link Info:
$client->links()->get($linkID);
Transaction
Initiate transactions by merchant (Merchant Initiated Transaction)
Merchant Initiated Transactions (MIT) allows a business to use card details, that were stored during previous transactions, to charge their customers.
$charge = $client->transaction()->create($card_id,$amount);
this will return a \MamoPay\Api\Objects\TransactionInfo object
refer : https://mamopay.readme.io/reference/charge-object
$chargeID = $charge->id;
- Fetch Transaction Info
$client->transaction()->get($chargeID);
- Fetch all Transactions
$client->transaction()->all();
- Refund Payment
$client->transaction()->refund($chargeId,$amount);
Subscription
- Fetches all subscribers of subscription.
$client->subscription()->all($subscriptionId);
- Fetches all subscription payments made against a Recurring Payment item.
$client->subscription()->get($subscriptionId);
- Unsubscribe subscription
$client->subscription()->unSubscribe($subscriptionId,$subscriberId);
- Cancels an existing recurring payment. This is NOT to unsubscribe a customer from a recurring payment that they have subscribed to. This deletes a previously created subscription for a business.
$client->subscription()->cancelRecurring($subscriptionId);
Payout
- Fetch all Disbursements
$client->payout()->all();
Issue Disbursements
- Allows the issuance of disbursement
$client->payout()->issue($account_no, $amount, $first_name, $last_name = '', $reason = '', $transfer_method = 'BANK_ACCOUNT');
- Allows the issuance of disbursements in bulk
<?php use MamoPay\Api\Objects\Disbursement; $client = (new MamoClient()); $disbursement[0] = (new Disbursement())->set([ 'account' => 'AE080200000123223333121', 'amount' => 10, 'first_name_or_business_name' => 'John', 'last_name' => 'Doe', ]); $disbursement[1] = (new Disbursement())->set([ 'account' => 'AE080200000123223333121', 'amount' => 20.5, 'first_name_or_business_name' => 'John', 'last_name' => 'Doe', 'reason' => 'refund for lorem ipsum', ]); $disbursements = $client->payout()->issueMultiple($disbursement);
Webhook
-Webhook registration for updates on one-off payment statuses and subscription payment statuses.
$client->webhook()->create($uri,$events,'authentication header');
this will return \MamoPay\Api\Objects\WebhookInfo object
- WebhookEvent class contain all event constants
use MamoPay\Api\Events\WebhookEvent; $response = $client->webhook()->create("http://example.com",WebhookEvent::ALL_EVENT_TYPES,'authentication header'); $response = $client->webhook()->create("http://example.com",[WebhookEvent::CHARGE_CARD_VERIFIED,WebhookEvent::CHARGE_SUCCEEDED]); $webhookId = $response->id;
- Fetches all registered webhooks for a given business
$client->webhook()->all();
- update webhook details
$client->webhook()->update($webhookId,"http://example.com",WebhookEvent::ALL_EVENT_TYPES,'authentication header');
- Delete a registered webhook
$client->webhook()->delete($webhookId);
Security
If you discover any security related issues, please email blackboy.email@gmail.com instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.