jilenloa / tppmyone4all-php
PHP库,轻松集成myone4all tpp服务
1.0.3
2023-11-12 22:50 UTC
Requires
- php: >=5.5
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- phpunit/phpunit: ^4.8.36
- symfony/process: ^3.0
README
此库使PHP开发者轻松集成One4All TPP在线服务。
支持PHP 5.5+
使用此库
use MyOne4All\TppClient; use MyOne4All\Exceptions\TppException; use MyOne4All\Models\DataBundle; use MyOne4All\NetworkCodes; $tppClient = new TppClient("apikey", "apisecret", "retailer");
获取余额
# ecredit balance echo $tppClient->getBalance(); # 0.0 # mobile money collection balance echo $tppClient->getBalance(TppClient::WALLET_TYPE_MOBILE_MONEY_COLLECTION); # 0.0 # mobile money credit balance echo $tppClient->getBalance(TppClient::WALLET_TYPE_MOBILE_MONEY_CREDIT); # 0.0
发送话费
// send airtime implementation $airtime_response = $tppClient->sendAirtime("0245667942", 1, "trans03423423", NetworkCodes::AUTO_DETECT); if($airtime_response->isSuccessful()){ echo "airtime sent"; }else{ echo "Failed: ".$airtime_response->getErrorMessage(); }
发送数据包
// send internet data implementation $data_code = "DAILY_20MB"; $transaction_reference = "trans03423423"; $bundle_response = $tppClient->sendDataBundle("0245667942", $data_code, $transaction_reference, NetworkCodes::MTN_GH); if($bundle_response->isSuccessful()){ echo "internet bundle sent"; }else{ echo "Failed: ".$bundle_response->getErrorMessage(); }
发送Flexi数据包
// send internet data implementation $data_code = "flexi_data_bundle"; $transaction_reference = "trans03423423"; $amount = 10; $bundle_response = $tppClient->sendFlexiDataBundle("0245667942", $amount, $data_code, $transaction_reference, NetworkCodes::MTN_GH); if($bundle_response->isSuccessful()){ echo "internet bundle sent"; }else{ echo "Failed: ".$bundle_response->getErrorMessage(); }
发送移动货币
// send mobile money implementation $transaction_reference = "trans03423423"; $amount = 1; $momo_response = $tppClient->sendMobileMoney("0245667942", $amount, $transaction_reference); if($momo_response->isSuccessful()){ echo "mobile money sent"; }else if($momo_response->isPending()){ // this is very important, do not treat as an error. // you must check transaction status later to know if it was successful or not echo "mobile money request is being processed."; }else{ echo "Failed: ".$momo_response->getErrorMessage(); }
接收移动货币
// receive mobile money implementation $transaction_reference = "trans03423423"; $amount = 1; $payer_number = "0245667XXX"; $momo_response = $tppClient->receiveMobileMoney($payer_number, $amount, $transaction_reference); if($momo_response->isSuccessful()){ // check transaction status later to confirm receipt echo "mobile money payment request initiated"; }else{ echo "Failed: ".$momo_response->getErrorMessage(); }
通过USSD接收移动货币
当与USSD会话一起工作时,在当前USSD会话结束和支付提示之间有一个延迟是很重要的。使用延迟参数来指定支付提示延迟的秒数。
// receive mobile money implementation $transaction_reference = "trans03423423"; $amount = 1; $payer_number = "0245667XXX"; $narration = "Food Purchase"; $delay = 5; // the last parameter represents the number of seconds to delay the payment prompt $momo_response = $tppClient->receiveMobileMoney($payer_number, $amount, $transaction_reference, $delay, $narration); if($momo_response->isSuccessful()){ // check transaction status later to confirm receipt echo "mobile money payment request initiated"; }else{ echo "Failed: ".$momo_response->getErrorMessage(); }
发送短信
$sms_message = "hello world"; $sms_sender_id = "One4All"; $transaction_reference = "sms11"; $sms_response = $tppClient->sendSms("0572180376", $sms_message, $sms_sender_id, $transaction_reference); if($sms_response->isSuccessful()){ echo "sms message queued"; }else{ echo "Failed: ".$sms_response->getErrorMessage(); }
查询套餐列表
我们建议您至少缓存此列表24小时,以避免不必要的API调用。
echo NetworkCodes::AUTO_DETECT; # 0 echo NetworkCodes::MTN_GH; # 4 echo NetworkCodes::AIRTEL_DRC; # 2 // fetch available data packages for all networks $data_packages = $tppClient->getDataBundleList(); // only fetch data packages for mtn $data_packages = $tppClient->getDataBundleList(NetworkCodes::MTN_GH); foreach($data_pages as $data_package){ echo $data_package->plan_id; # DAILY_20MB echo $data_package->plan_name; # DAILY_20MB echo $data_package->category; # DAILY echo $data_package->network_id; # 4 echo $data_package->volume; # 20 MB }
查询交易状态
$transaction_reference = "trans03423423"; $transaction_status = $tppClient->getTransactionStatus($transaction_reference); if($transaction_status == TppClient::TRANSACTION_STATUS_COMPLETED){ echo "transaction successful"; }
使用Composer安装包
composer require jilenloa/tppmyone4all-php
安装后,您需要引入Composer的自动加载器
require 'vendor/autoload.php';
然后您可以使用composer更新包
composer update
为了运行此包的单元测试
npm install -g mockserver