vptrading/telebirr-ussd-laravel

用于快速集成Telebirr USSD支付网关的Laravel包

v1.0.2 2023-12-14 10:02 UTC

This package is auto-updated.

Last update: 2024-10-02 20:20:17 UTC


README

VP Logo

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。

🚀 就这样。做你的事情,如果这对你有帮助,请给我们一个星标。🚀