kouyatekarim / momoapi
一个用于集成MTN Mobile Money API的简单PHP包
v1.0
2020-12-15 22:41 UTC
Requires
- pear/http_request2: ^2.4.2
This package is auto-updated.
Last update: 2024-09-08 21:22:56 UTC
README
Momo包:一个用于集成MTN Mobile Money API的简单PHP包。
支持的产品
- 集合
- 支付(尚未提供)
首先
- 在momodeveloper注册或获取momoapi(prod)访问权限
- 订阅产品集合
注册
请点击此链接 注册
订阅产品
在开发者门户的产品页面,您应该能看到可以订阅的项目
- 集合
- 支付
- 汇款
安装
安装PackageMomo推荐的方法是 composer。
composer require kouyatekarim/momoapi
现在您可以添加自动加载器,您将能够访问库:如果是PHP原生项目,请务必将其放在最上面
<?php require 'vendor/autoload.php';
始终在最上面
<?php require 'vendor/autoload.php';
对于使用框架的项目,不需要require 'vendor/autoload'命令
使用
创建产品实例
如果您使用的是 LARAVEL,请首先在[]'vendor/kouyatekarim/momoapi/src/products/product.php'文件的第17行将realpath改为base_path,以及在[]'vendor/kouyatekarim/momoapi/src/traits/SandboxUserProvisioning.php'文件中。
如果您使用的是PHP原生,可以保持原样。
如果您使用的是其他PHP框架,如果出现路径错误,请检查这两个文件[]'vendor/kouyatekarim/momoapi/src/traits/SandboxUserProvisioning.php',[]'vendor/kouyatekarim/momoapi/src/products/product.php'。
<?php use Kouyatekarim\Momoapi\Products\Collection; $options = [ // 'callbackHost' => '', //(optionel) https://:8000 est par defaut // 'callbackUrl' => '', //(optionel) https://:8000/callback est par defaut // 'environment' => '', //(optionel) sandbox est par defaut // 'accountHolderIdType' => '', //(optionel) msisdn est par defaut 'subscriptionKey' => '', //la clée produit de souscription 'xReferenceId' => '', //Api user (en format UUID ) 'apiKey' => '', // Api key (obtenu après l'avoir généré à 'Créer une clé API') //'accessToken' => '' //obligatoire pour requestopay ]; // avec collection $collection = Collection::create($options);
沙箱用户配置
创建API用户
<?php use Kouyatekarim\Momoapi\Products\Collection; // avec collection $product = Collection::create($options); $response = $product->createApiUser(); //{"statusCode": 201} echo $response
获取API用户详情
<?php use Kouyatekarim\Momoapi\Products\Collection; // Using collection $product = Collection::create($options); $apiUser = $product->getApiUser(); echo $apiUser->getProviderCallbackHost(); //https://:8000 echo '</br>'; echo $apiUser->getTargetEnvironment(); //sandbox
创建API密钥
<?php use Kouyatekarim\Momoapi\Products\Collection; // Avec collection $product = Collection::create($options); $apiKey = $product->createApiKey(); echo $apiKey->getApiKey(); //apiKey
Oauth 2.0
获取令牌(令牌)
<?php use Kouyatekarim\Momoapi\Products\Collection; // Avec collection $product = Collection::create($options); $token = $product->getToken(); echo $token->getAccessToken(); //accessToken echo '</br>'; echo $token->getTokenType(); //tokenType echo '</br>'; echo $token->getExpiresIn(); //expiry in seconds
交易
集合
支付请求
<?php use Kouyatekarim\Momoapi\Products\Collection; // Avec collection $product = Collection::create($options); $product->requestToPay($externalId, $partyId, $amount, $currency, $payerMessage = '', $payeeNote = ''); // *
完整示例
测试(沙箱)完整示例
<?php require 'vendor/autoload.php'; // à enlever si vous travailler avec un framework use Kouyatekarim\Momoapi\Products\Collection; $xReferenceId = "afd59405-1bbe-4928-99d2-0c7060956358"; // à générer sur le site [UUID](https://www.uuidgenerator.net/). $options = [ 'callbackHost' => 'clinic.com', // 'callbackUrl' => '', //'environment' => '', // 'accountHolderIdType' => '', 'subscriptionKey' => '<votre_primary_key>', 'xReferenceId' => $xReferenceId, ]; // Avec collection $product = Collection::create($options); $product->createApiUser(); $apiUser = $product->getApiUser(); echo $apiUser->getProviderCallbackHost(); //clinic.com echo '</br>'; echo $apiUser->getTargetEnvironment(); //sandbox echo '</br>'; $apiKey = $product->createApiKey(); echo $apiKey->getApiKey(); $options = [ // 'callbackHost' => '', //(optional) // 'callbackUrl' => '', //(optional) //'environment' => 'mtnivorycoast', // 'accountHolderIdType' => '', 'subscriptionKey' => '<votre_primary_key>', 'xReferenceId' => $xReferenceId, // 'apiKey' => $apiKey->getApiKey(), // ]; $product = Collection::create($options); $token = $product->getToken(); echo $token->getAccessToken(); //accessToken $token->getTokenType(); //tokenType $token->getExpiresIn(); //expiry in seconds $options = [ // 'callbackHost' => '', // 'callbackUrl' => '', //'environment' => '', // 'accountHolderIdType' => '', 'subscriptionKey' => '', 'xReferenceId' =>$xReferenceId, 'apiKey' => $apiKey->getApiKey(), 'accessToken' => $token ]; $product = Collection::create($options); $externalId ="12345"; $partyId = '<un_numero_mtn_mobile_money>'; //numero sans l'indicateur du pays $amount = 10; $currency = "EUR"; $product->requestToPay($externalId, $partyId, $amount, $currency, $payerMessage = '', $payeeNote = '');
生产环境完整示例
<?php require 'vendor/autoload.php'; // à enlever si vous travailler avec un framework use Kouyatekarim\Momoapi\Products\Collection; $options = [ 'callbackHost' => '<nom_de_domaine>', 'callbackUrl' => '<nom_de_domaine>/callback', 'environment' => 'mtnivorycoast', //pour la côte d'ivoire // 'accountHolderIdType' => '', 'subscriptionKey' => '<votre_primary_key_prod>', 'xReferenceId' => '<votre_api_user>', //Api user obtenu depuis le portail partner de MTN [Partner](https://partnermobilemoney.mtn.ci/partner/). 'apiKey' => '<votre_api_user>', // Api key obtenu depuis le portail partner de MTN [Partner](https://partnermobilemoney.mtn.ci/partner ]; $product = Collection::create($options); $token = $product->getToken(); echo $token->getAccessToken(); //accessToken $token->getTokenType(); //tokenType $token->getExpiresIn(); //expiry in seconds $options = [ 'callbackHost' => '<nom_de_domaine>', 'callbackUrl' => '<nom_de_domaine>/callback', 'environment' => 'mtnivorycoast', //pour la côte d'ivoire // 'accountHolderIdType' => '', 'subscriptionKey' => '<votre_primary_key_prod>', 'xReferenceId' => '<votre_api_user>', //Api user obtenu depuis le portail partner de MTN [Partner](https://partnermobilemoney.mtn.ci/partner/). 'apiKey' => '<votre_api_user>', // Api key obtenu depuis le portail partner de MTN [Partner](https://partnermobilemoney.mtn.ci/partner 'accessToken' => $token ,//obligatoire ]; $product = Collection::create($options); $externalId ="12345"; $partyId = '<votre_numero_mobile_money>'; //numero sans l'indicateur du pays $amount = 10; $currency = "XOF"; $product->requestToPay($externalId, $partyId, $amount, $currency, $payerMessage = '', $payeeNote = '');
错误
对于发现的任何错误,请通过kouyatekarim02@gmail.com发送电子邮件给我