mwanziamutua / omnipay-mpesa
mpesa omnipay网关
Requires
- php: ^8.0
- omnipay/common: ^3
README
Lipa na MPesa (LNM) API 是一个利用 Safaricom 推出的新功能 STK Push 设计的 API。此功能允许交易发起从付款客户的侧面转移到收款组织的侧面。这消除了记住业务支付账单号和账号号的挑战,并允许客户通过在手机上输入他们的 MPesa PIN 简单确认交易。这是通过在客户手机上出现的 STK push/弹出窗口完成的,该窗口提示他们输入 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 mwanziamutua/omnipay-mpesa -
用法
此包提供以下网关
- omnipay-mpesa
有关一般用法说明,请参阅主 Omnipay 仓库。
支持
如果您在使用 Omnipay 时遇到一般问题,我们建议您在 Stack Overflow 上发布。确保添加 omnipay 标签,以便可以轻松找到。
如果您想了解发布公告,讨论项目想法或提出更详细的问题,还有一个您可以订阅的 邮件列表。
如果您认为您发现了一个错误,请使用 GitHub 问题跟踪器 报告,或者最好是分叉库并提交拉取请求。
变更日志
请参阅 CHANGELOG 了解最近更改的信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 了解详细信息。