wasksofts / omnipay-mpesa
Requires
- php: ^5.6|^7
- omnipay/common: ^3
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)。更多信息请参阅许可证文件。