lepresk/momo-api

MoMo(移动货币)API集成到PHP应用程序中的强大且用户友好的包装器。

v1.0.2 2024-04-22 19:06 UTC

This package is auto-updated.

Last update: 2024-09-22 19:56:12 UTC


README

Static Badge GitHub

lepresk/momo-api库是MoMo(移动货币)官方API的封装。它简化了与MoMo平台的交互,并提供了额外的功能,以简化金融交易集成和管理。

功能

lepresk/momo-api库让您能够

所需配置

  • PHP 7.4或更高版本。
  • Momo Developper上拥有账户并获取subscriptionKey,或者在生产中使用由MTN提供的API密钥。

📢在生产环境中,subscriptionKeyapiUserapiKey将直接由MTN提供

安装

要安装库lepresk/momo-api,您可以使用Composer

composer require lepresk/momo-api

使用

以下是使用此库的简单示例

<?php
use Lepresk\MomoApi\MomoApi;
use Lepresk\MomoApi\Utilities;


require 'vendor/autoload.php';

// Récupérer la subscriptionKey dans son profile ou utiliser celui fournit par MTN si vous êtes en production
$subscriptionKey = 'SUBSCRIPTION KEY HERE';

// Récupérer le client Momo
$momo = MomoApi::create(MomoApi::ENVIRONMENT_SANDBOX);

📢请确保将“SUBSCRIPTION KEY HERE”替换为您的实际订阅密钥。

可能的环境

与沙箱交互

创建api用户

// Créer une api user
$uuid = Utilities::guidv4(); // Ou tout autre guuidv4 valide
$callbackHost = 'https://my-domain.com/callback';

$apiUser = $momo->sandbox($subscriptionKey)->createApiUser($uuid, $callbackHost);
echo "Api user created: $apiUser\n";

获取用户信息

$data = $momo->sandbox($subscriptionKey)->getApiUser($apiUser);
print_r($data);
// [
//      'providerCallbackHost' => 'https://my-domain.com/callback',
//      'targetEnvironment' => 'sandbox',
// ]

创建api密钥

$apiKey = $momo->sandbox($subscriptionKey)->createApiKey($apiUser);
echo "Api token created: $apiKey\n";

与集合产品交互

在使用集合API之前,您必须定义配置。

// Créer un object Config
$config = new \Lepresk\MomoApi\Config::collection($subscriptionKey, $apiUser, $apiKey, $callbackHost);

// Définir la configuration sur l'instance de MomoApi
$momo->setupCollection($config);

获取oauth令牌

$token = $momo->collection()->getAccessToken();

echo $token->getAccessToken(); // Token
echo $token->getExpiresIn(); // Date d'expiration du token

要执行requestToPay请求或检查交易状态,您无需请求令牌,它在每次交易中自动生成。

获取账户余额

$balance = $momo->collection()->getAccountBalance();

echo $balance->getAvailableBalance(); // Solde du compte
echo $balance->getCurrency(); // Devise du compte

执行requestToPay请求

<?php

// Pour initier un paiement requestToPay
$request = new PaymentRequest(1000, 'EUR', 'ORDER-10', '46733123454', 'Payer message', 'Payer note');
$paymentId = $momo->collection()->requestToPay($request);

有关测试电话号码的详细信息,请参阅https://momodeveloper.mtn.com/api-documentation/testing/

$paymentId是刚刚完成的支付的id,您可以将它记录在数据库中以供以后使用(例如,检查支付状态)

检查交易状态

<?php
// Vérifier le statut du paiement
$transaction = $momo->collection()->checkRequestStatus($paymentId);

echo $transaction->getStatus(); // Pour obtenir le statut de la transaction

管理回调钩子

<?php
use Lepresk\MomoApi\Models\Transaction;

// Créer un objet transaction depuis le tableau GET
$transaction = Transaction::parse($_GET);

echo $transaction->getStatus(); // Pour obtenir le statut de la transaction
echo $transaction->getAmount(); // Pour récuperer le montant de la transaction

补充文档

有关使用库lepresk/momo-api和可用功能的更多信息,请参阅GitHub存储库中的“docs”文件夹中的官方文档。

贡献

欢迎贡献!如果您想改进库、报告问题或提交功能请求,请在此库的GitHub存储库上创建一个问题:lepresk/momo-api

许可

此库根据MIT许可证分发。您可以根据自己的需求使用和修改它。