An MTN Mobile Money php client.
PHP >=8.0
You can install via Composer. Run the following command:
composer require mediumart/momoThe client env configuration default to live. If you want to practice in the sandbox environment before going live, you probably want to enable it before resolving any client instance.
use Mediumart\MobileMoney\MobileMoney;
MobileMoney::setCurrentEnvironment('sandbox');Alternatively, you can also configure a specific service instance to run in the sandbox by providing a 'sandbox' argument upon getting the instance.
$collection = MobileMoney::collection('sandbox');Connect to your Momo developer Dashboard, subscribe to a product : collection, disbursement, or remittance. Go to your profile and grab the corresponding subscription key (should be primary key or secondary key).
Then create a new sandbox user for your subscription key.
use Mediumart\MobileMoney\Sandbox\UsersProvisioning;
$user = UsersProvisioning::sandboxUserFor('<your product subscription key>');This will get you a fresh Mediumart\ModileMoney\User instance, a value object with 3 properties (all lowercase):
$id = $user->id;
$apikey = $user->apikey;
$subscriptionkey = $user->subscriptionkey;Use them to get a new access token for the corresponding service (collection, disbursement, or remittance).
$collection = MobileMoney::collection();
$token = $collection->createAccessToken($subscriptionkey, $id, $apikey);The same Mediumart\ModileMoney\User class can be used to store similar values in your live environment.
Mtn Mobile Money API supported services are: collection, disbursement, and remittance.
Resolve services clients instances using the MobileMoney facade.
use Mediumart\MobileMoney\MobileMoney;
$collection = MobileMoney::collection();
$disbursement = MobileMoney::disbursement();
$remittance = MobileMoney::remittance();Then this is the list of methods you 'll have access to :
bcAuthorizecreateAccessTokencreateOauth2TokenvalidateAccountHolderStatusgetAccountBalancegetBasicUserinfogetUserInfoWithConsentrequestToPayDeliveryNotification
transfergetTransferStatus
requestToPayrequestToPayTransactionStatusrequestToWithdrawV1requestToWithdrawV2requestToWithdrawV1TransactionStatuscancelInvoicecreateInvoicegetInvoiceStatuscreatePaymentsgetPaymentStatuspreApprovalgetPreApprovalStatus
depositV1depositV2getDepositStatusrefundV1refundV2getRefundStatus
cashTransfergetCashTransferStatus
For now, to know which parameters are required for each method, please look at the code . A complete API docs may be released soon.
Mediumart momo is an open-sourced software licensed under the MIT license.