fannypack/momo
Composer 安装命令:
composer require fannypack/momo
包简介
MTN MOMO api implementation
README 文档
README
Momo is a simple library in PHP for the MTN Mobile Money Open API.
Product support
- Collections
- Disbursements
- Remittances
Getting Started
- Signup For An Account
- Subscribe To Products
Signup For An Account
Follow this link to the developer portal and signup for an account.
Subscribe To Products
On the Products page on developer portal you should see items you can subscribe to:
- Collections
- Disbursements
- Remittances
Installation
The recommended way to install Momo is through composer.
Just create a composer.json file for your project and require it:
composer require fannypack/momo
Now you can add the autoloader, and you will have access to the library:
<?php require 'vendor/autoload.php';
Usage
Creating a product instance
<?php use FannyPack\Momo\Products\Collection; use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; $options = [ // 'callbackHost' => '', //(optional) default is http://localhost:8000 // 'callbackUrl' => '', //(optional) default is http://localhost:8000/callback // 'environment' => '', //(optional) default is sandbox // 'accountHolderIdType' => '', //(optional) default is msisdn 'subscriptionKey' => '', //Product Subscription key 'xReferenceId' => '', //Api user reference id (in UUID format) 'apiKey' => '', // Api user key (Supply this after generating it at 'Create API Key') //'preApproval' => '', //(optional) default is false //'accessToken' => '' //Required for transactions ]; // Using collection $collection = Collection::create($options); // Using disbursement $disbursement = Disbursement::create($options); // Using remittance $remittance = Remittance::create($options);
Sandbox User Provisioning
Create API User
<?php use FannyPack\Momo\Products\Collection; use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using collection $product = Collection::create($options); // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $product->createApiUser(); //{"statusCode": 201}
GET API User Details
<?php use FannyPack\Momo\Products\Collection; use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using collection $product = Collection::create($options); // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $apiUser = $product->getApiUser(); $apiUser->getProviderCallbackHost(); //http://localhost:8000 $apiUser->getTargetEnvironment(); //sandbox
Create API Key
<?php use FannyPack\Momo\Products\Collection; use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using collection $product = Collection::create($options); // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $apiKey = $product->createApiKey(); $apiKey->getApiKey(); //apiKey
Oauth 2.0
Get token
<?php use FannyPack\Momo\Products\Collection; use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using collection $product = Collection::create($options); // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $token = $product->getToken(); $token->getAccessToken(); //accessToken $token->getTokenType(); //tokenType $token->getExpiresIn(); //expiry in seconds
Transactions
Get account balance
<?php use FannyPack\Momo\Products\Collection; use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using collection $product = Collection::create($options); // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $balance = $product->getAccountBalance(); $balance->getAvailableBalance(); //accountBalance $balance->getCurrency(); //currency
Get account holder status
<?php use FannyPack\Momo\Products\Collection; use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using collection $product = Collection::create($options); // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $product->getAccountHolderInfo($accountHolderId); //{"statusCode": 201}
Collections
Request to pay
<?php use FannyPack\Momo\Products\Collection; // Using collection $product = Collection::create($options); $product->requestToPay($externalId, $partyId, $amount, $currency, $payerMessage = '', $payeeNote = ''); // {"statusCode": 200, "financialTransactionId": "8f3077a6-ce43-4584-a425-589c50cfcbe4"}
Request to pay status
<?php use FannyPack\Momo\Products\Collection; // Using collection $product = Collection::create($options); $transactionStatus = $product->getRequestToPayStatus($financialTransactionId); $transactionStatus->getAmount(); //amount $transactionStatus->getCurrency(); //currency $transactionStatus->getExternalId(); //externalId $transactionStatus->getPayer(); //payer object $transactionStatus->getStatus(); //status
Disbursements and Remittances
Transfer
<?php use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $product->transfer($externalId, $partyId, $amount, $currency, $payerMessage = '', $payeeNote = '');// {"statusCode": 200, "financialTransactionId": "8f3077a6-ce43-4584-a425-589c50cfcbe4"}
Transfer status
<?php use FannyPack\Momo\Products\Disbursement; use FannyPack\Momo\Products\Remittance; // Using disbursement $product = Disbursement::create($options); // Using remittance $product = Remittance::create($options); $transactionStatus = $product->transferStatus($financialTransactionId); $transactionStatus->getAmount(); //amount $transactionStatus->getCurrency(); //currency $transactionStatus->getExternalId(); //externalId $transactionStatus->getPayer(); //payer object $transactionStatus->getStatus(); //status
Bugs
For any bugs found, please email me at andrewmvp007@gmail.com or register an issue at issues
fannypack/momo 适用场景与选型建议
fannypack/momo 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 649 次下载、GitHub Stars 达 13, 最近一次更新时间为 2019 年 04 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 fannypack/momo 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 fannypack/momo 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 649
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 13
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2019-04-20