wasksofts/omnipay-mpesa

此包已被废弃且不再维护。作者建议使用wasksofts-technology/omnipay-mpesa包。

Lipa na Mpesa Omnipay网关

dev-master / 1.7.x-dev 2021-04-04 12:46 UTC

This package is auto-updated.

Last update: 2024-06-28 22:11:56 UTC


README

Lipa na MPesa (LNM) API是一个利用Safaricom推出的新功能STK Push设计的API。这个功能允许交易发起从付款客户的一侧转移到收款组织的一侧。这消除了记住业务paybill号码和账户号码的挑战,并允许客户通过在手机上输入他们的Mpesa PIN来简单确认交易。这是通过在客户手机上出现的STK推送/弹出窗口完成的,提示他们输入PIN。对于企业来说,这个API使他们能够预设所有正确的支付请求信息,减少错误支付到其系统的可能性。这是一个C2B交易,但发起者是组织而不是客户。由于组织可以在发送请求之前预设所有必需的变量,因此此API没有像以前的C2B API那样的验证-确认过程。

TL;DR

只想看看一些代码吗?

  use Omnipay\Omnipay;
  use Omnipay\Mpesa;

  $gateway = Omnipay::create('Mpesa');
  $gateway->setShortCode('174379');
  $gateway->setConsumerKey('');
  $gateway->setConsumerSecret('');
  $gateway->setPassKey('');
  $gateway->setTestMode('sandbox'); 

      $purchase = $gateway->purchase(array(
         'amount' => '100',
         'phone_number' => '254708374149',
         'account' => 'apitest',
         'description' => 'This is a purchase',
         'callbackUrl' => 'https://example.com/callback_url.php',
       ));
       
       
       if ($response->isSuccessful()) {
             echo "Input your pin to purchase!";

       }else{
           // Payment failed
           return $response->getMessage();
      } 

      $data = $response->getData();
      echo '<pre>';print_r($data);echo '</pre>';

您的回调URL应该有这个

/**
 * Use this to process the STK push request callback
 */
    $callbackJSONData=file_get_contents('php://input');
    $callbackData=json_decode($callbackJSONData);

    $result=[
        "resultDesc"=>$callbackData->Body->stkCallback->ResultDesc,
        "resultCode"=>$callbackData->Body->stkCallback->ResultCode,
        "merchantRequestID"=>$callbackData->Body->stkCallback->MerchantRequestID,
        "checkoutRequestID"=>$callbackData->Body->stkCallback->CheckoutRequestID,
        "amount"=>$callbackData->Body->stkCallback->CallbackMetadata->Item[0]->Value,
        "mpesaReceiptNumber"=>$callbackData->Body->stkCallback->CallbackMetadata->Item[1]->Value,
        "transactionDate"=>$callbackData->Body->stkCallback->CallbackMetadata->Item[3]->Value,
        "phoneNumber"=>$callbackData->Body->stkCallback->CallbackMetadata->Item[4]->Value
    ];

    return json_encode($result);
//you can save json_data on database

c2b模拟

我们正在实施c2b,我们将很快更新

Omnipay是一个框架无关的多网关支付处理库,适用于PHP 5.3+。此包实现了Omnipay对omnipay-lipa-na-mpesa的支持。

这里应该是你的描述。尽量限制在一到两段话,并提及你支持的PSRs,以避免与用户和贡献者产生混淆。

安装

使用require安装网关。需要安装league/omnipay基本包和此网关。

$ composer require league/omnipay wasksofts/omnipay-mpesa -

使用方法

此包提供以下网关

  • omnipay-mpesa

有关一般使用说明,请参阅Omnipay的主要存储库。

支持

如果您遇到Omnipay的一般问题,我们建议您在Stack Overflow上发布。请确保添加omnipay标签,以便更容易找到。

如果您想了解发布公告,讨论项目想法或提出更详细的问题,还有一个邮件列表,您可以订阅。

如果您认为您发现了一个错误,请使用GitHub问题跟踪器报告,或者最好是分支库并提交一个pull请求。

变更日志

请参阅CHANGELOG了解最近更改的信息。

测试

$ composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过mukamanusteven@gmail.com而不是使用问题跟踪器发送电子邮件。

致谢

许可证

麻省理工学院许可证(MIT)。更多信息请参阅许可证文件

捐赠