vptrading / telebirr-ussd-laravel
用于快速集成Telebirr USSD支付网关的Laravel包
Requires
- php: ^7.4 || ^8.0
- illuminate/support: ^10.0
This package is auto-updated.
Last update: 2024-10-02 20:20:17 UTC
README
Laravel包用于
Telebirr USSD
简介
此Laravel包是一个轻量级的Telebirr USSD®集成包。
使用说明
第一步
运行 composer require vptrading/telebirr-ussd-laravel
第二步
运行 artisan 命令以发布 zergawaICSP/telebirr-laravel 配置文件。
php artisan vendor:publish --provider="Vptrading\TelebirrUssd\TelebirrUssdServiceProvider"
运行该命令后,您将在应用程序的 config
目录中看到一个 telebirr.php
配置文件。
第三步
打开 telebirr.php
配置文件,并添加Telebirr®提供的密钥。
用法
推送
要使用Telebirr®发送购买请求,只需将Telebirr
类导入您想要使用它的位置,并调用push
静态方法。该Telebirr::push()
方法接受三个参数:价格、电话号码和参考编号。
示例
use Vptrading\TelebirrUssd\TelebirrUssd;
$response = Telebirr::push(1, '0912345678', 'VP_212fw323r3');
注意:
ShortCode
由Ethio Telecom提供
调用该方法时,它将返回一个响应
响应示例
{
"Body": {
"Response": {
"Header": {
"Version": "1.0",
"OriginatorConversationID": "VP_212fw323r",
"ConversationID": "AG_20231118_70406b41c7f87f04c861"
},
"Body": {
"ResponseCode": "0",
"ResponseDesc": "Accept the service request successfully.",
"ServiceStatus": "0"
}
}
}
}
注意:
OriginatorConversationID
是您用作RefNo
的参考编号
这将为您使用的电话号码发送一个推送USSD。一旦用户填写密码并确认付款,Telebirr将发送通知。
解析
接下来是当支付成功时收到通知。在用户支付了所描述的金额后,Telebirr®将向您在telebirr.php
配置文件中指定的结果URL发送通知。
Telebirr®的示例通知字符串
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><api:Result xmlns:api="http://cps.huawei.com/cpsinterface/api_resultmgr" xmlns:res="http://cps.huawei.com/cpsinterface/result" xmlns:com="http://cps.huawei.com/cpsinterface/common"><res:Header><res:Version>1.0</res:Version><res:OriginatorConversationID>VP_212fw323r</res:OriginatorConversationID><res:ConversationID>AG_20231017_70101ef1abddd338afdf</res:ConversationID></res:Header><res:Body><res:ResultType>0</res:ResultType><res:ResultCode>0</res:ResultCode><res:ResultDesc>Process service request successfully.</res:ResultDesc><res:TransactionResult><res:TransactionID>AJH40OGEZK</res:TransactionID><res:ResultParameters><res:ResultParameter><com:Key>DebitBalance</com:Key><com:Value>{"total":[{"amount":"3462258.96","currency":"ETB"}],"list":[{"amount":"0.00","accountno":"100000000111325021","currency":"ETB"},{"amount":"4087.35","accountno":"100000000110941240","currency":"ETB","accounttypename":"Customer Incentive Account"},{"amount":"904075.30","accountno":"100000000110261011","currency":"ETB","accounttypename":"Customer E-Money Account"},{"amount":"0.00","accountno":"100000000110941232","currency":"ETB","accounttypename":"Incentive Account"},{"amount":"1001010.00","accountno":"100000000111442800","currency":"ETB","accounttypename":"Customer E money Account"},{"amount":"3086.31","accountno":"100000000111661169","currency":"ETB","accounttypename":"Customer E-Money Account For Fuel Coupon"},{"amount":"500000.00","accountno":"100000000111121768","currency":"ETB"},{"amount":"0.00","accountno":"100000000111043129","currency":"ETB"},{"amount":"1050000.00","accountno":"100000000111561013","currency":"ETB","accounttypename":"Customer Emoney Account"}]}</com:Value></res:ResultParameter><res:ResultParameter><com:Key>CreditBalance</com:Key><com:Value/></res:ResultParameter></res:ResultParameters></res:TransactionResult></res:Body></api:Result></soapenv:Body></soapenv:Envelope>
为了解码它,该包提供了一个deconstruct
静态方法。您只需将Telebirr®发送的通知字符串放入该静态方法中,它就会被解码。
示例
$decoded = Telebirr::deconstruct('<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><api:Result xmlns:api="http://cps.huawei.com/cpsinterface/api_resultmgr" xmlns:res="http://cps.huawei.com/cpsinterface/result" xmlns:com="http://cps.huawei.com/cpsinterface/common"><res:Header><res:Version>1.0</res:Version><res:OriginatorConversationID>VP_212fw323r</res:OriginatorConversationID><res:ConversationID>AG_20231017_70101ef1abddd338afdf</res:ConversationID></res:Header><res:Body><res:ResultType>0</res:ResultType><res:ResultCode>0</res:ResultCode><res:ResultDesc>Process service request successfully.</res:ResultDesc><res:TransactionResult><res:TransactionID>AJH40OGEZK</res:TransactionID><res:ResultParameters><res:ResultParameter><com:Key>DebitBalance</com:Key><com:Value>{"total":[{"amount":"3462258.96","currency":"ETB"}],"list":[{"amount":"0.00","accountno":"100000000111325021","currency":"ETB"},{"amount":"4087.35","accountno":"100000000110941240","currency":"ETB","accounttypename":"Customer Incentive Account"},{"amount":"904075.30","accountno":"100000000110261011","currency":"ETB","accounttypename":"Customer E-Money Account"},{"amount":"0.00","accountno":"100000000110941232","currency":"ETB","accounttypename":"Incentive Account"},{"amount":"1001010.00","accountno":"100000000111442800","currency":"ETB","accounttypename":"Customer E money Account"},{"amount":"3086.31","accountno":"100000000111661169","currency":"ETB","accounttypename":"Customer E-Money Account For Fuel Coupon"},{"amount":"500000.00","accountno":"100000000111121768","currency":"ETB"},{"amount":"0.00","accountno":"100000000111043129","currency":"ETB"},{"amount":"1050000.00","accountno":"100000000111561013","currency":"ETB","accounttypename":"Customer Emoney Account"}]}</com:Value></res:ResultParameter><res:ResultParameter><com:Key>CreditBalance</com:Key><com:Value/></res:ResultParameter></res:ResultParameters></res:TransactionResult></res:Body></api:Result></soapenv:Body></soapenv:Envelope>');
结果
{
"Body": {
"Result": {
"Header": {
"Version": "1.0",
"OriginatorConversationID": "VP_212fw323r",
"ConversationID": "AG_20231118_70406b41c7f87f04c861"
},
"Body": {
"ResultType": "0",
"ResultCode": "0",
"ResultDesc": "Process service request successfully.",
"TransactionResult": {
"TransactionID": "AKI2AGO8RM",
"ResultParameters": {
"ResultParameter": [
{
"Key": "DebitBalance",
"Value": "{\"total\":[{\"amount\":\"15.17\",\"currency\":\"ETB\"}],\"list\":[{\"amount\":\"0.30\",\"accountno\":\"100000000114997859\",\"currency\":\"ETB\",\"accounttypename\":\"Customer Incentive Account\"},{\"amount\":\"14.87\",\"accountno\":\"100000000114997842\",\"currency\":\"ETB\",\"accounttypename\":\"Customer E-Money Account\"}]}"
},
{
"Key": "CreditBalance",
"Value": []
}
]
}
}
}
}
}
}
结果是包含您用于查询数据库的唯一OriginatorConversationID
的JSON。
🚀 就这样。做你的事情,如果这对你有帮助,请给我们一个星标。🚀