triverla / laravel-opay
用于Opay的Laravel包
Requires
- php: ^7.2|^8.0|^8.1
- ext-json: *
- guzzlehttp/guzzle: ~6|~7|~8|~9
- illuminate/support: ~6|~7|~8|~9|^10.0
Requires (Dev)
- mockery/mockery: 1.*
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-27 01:26:03 UTC
README
这是一个Laravel包,可以无缝地将Opay支付API集成到任何新的或现有的Laravel应用中。
安装
需要PHP 7.2+或HHVM 3.3+以及Composer。
要获取Laravel Opay的最新版本,只需要求它
composer require triverla/laravel-opay
或者将以下行添加到你的composer.json
文件的require块中。
"triverla/laravel-opay": "1.0.*"
然后你需要运行composer install
或composer update
来下载它并更新自动加载器。
安装Laravel Opay后,你需要注册服务提供者。打开config/app.php
并将以下内容添加到providers
键中。
'providers' => [ ... Triverla\LaravelOpay\OpayServiceProvider::class, ... ]
如果你使用的是Laravel >= 5.5,你可以跳过此步骤并直接进入
配置
部分。
Triverla\LaravelOpay\OpayServiceProvider::class
同时,也要注册Facade,如下所示
'aliases' => [ ... 'Opay' => Triverla\LaravelOPay\Facades\Opay::class, ... ]
配置
你可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Triverla\LaravelOpay\OpayServiceProvider"
将一个包含一些合理默认值的配置文件opay.php
放置在config
目录中,如下所示
<?php return [ 'base_url' => env('OPAY_BASE_URL', 'https://cashierapi.opayweb.com'), 'secret_key' => env('OPAY_SECRET_KEY', ''), 'public_key' => env('OPAY_PUBLIC_KEY', ''), 'merchant_id' => env('OPAY_MERCHANT_ID', '') ];
使用方法
打开你的.env文件,并添加以下键。你可以在(https://merchant.opaycheckout.com/account-details)的API密钥和Webhook选项卡下获得它们
OPAY_BASE_URL=https://cashierapi.opayweb.com OPAY_SECRET_KEY=XXXXXXXXXX OPAY_PUBLIC_KEY=XXXXXXXXXX OPAY_MERCHANT_ID=XXXXXXXXXX
- 使用以下导入语句导入Opay Facades
- 同时导入处理失败请求抛出的异常的FailedRequestException。此异常返回相应的Opay错误信息和代码
... use Triverla\LaravelOpay\Facades\Opay; use Triverla\LaravelOpay\Exceptions\FailedRequestException; ...
其他方法包括
use Triverla\LaravelOpay\Facades\Opay; //Bank Endpoints $response = Opay::bank()->countries(); $response = Opay::bank()->banks(); //Wallet $response = Opay::wallet()->initiateTransaction(string $reference, string $userPhone, float $amount, string $userRequestIp, string $productName, string $productDesc, int $expiresAt = 30, string $currency = 'NGN'); $response = Opay::wallet()->authorizeTransaction(string $reference, string $orderNo, string $userPhone, string $pin); $response = Opay::wallet()->sendOTP(string $reference, string $orderNo, string $payMethod); $response = Opay::wallet()->verifyOTP(string $reference, string $orderNo, string $payMethod, string $otp); $response = Opay::wallet()->closeTransaction(string $reference, string $orderNo); $response = Opay::wallet()->initializeRefund(string $reference, string $refundReference, float $refundAmount, string $orderNo, string $currency = 'NGN'); $response = Opay::wallet()->verifyRefundStatus(string $reference, string $refundReference, float $refundAmount, string $refundOrderNo); //Account $response = Opay::account()->createUserAccount(string $phoneNumber, string $email, string $firstName, string $lastName, string $password, string $address, string $otp); $response = Opay::account()->sendOTP(string $phoneNumber); //Inquiry $response = Opay::inquiry()->balance(); $response = Opay::inquiry()->validateOPayUser(string $phoneNumber); $response = Opay::inquiry()->validateOPayMerchant(string $email); $response = Opay::inquiry()->validateBankAccountNumber(string $bankCode, string $bankAccountNumber, string $countryCode = 'NG'); //Transfer $response = Opay::transfer()->opayWallet(WalletTransferPayload $payload); $response = Opay::transfer()->queryWalletTransferStatus(string $reference, string $orderNo); $response = Opay::transfer()->opayWalletBatch(WalletTransferPayloadList $payloadList); $response = Opay::transfer()->bankAccount(BankTransferPayload $payload); $response = Opay::transfer()->queryBankTransferStatus(string $reference, string $orderNo); $response = Opay::transfer()->bankAccountBatch(BankTransferPayloadList $payloadList); //Transactions $response = Opay::transaction()->initializeCardTransaction(string $reference, float $amount, string $firstName, string $lastName, string $customerEmail, string $cardNumber, string $cardDateMonth, string $cardDateYear, string $cardCVC, string $return3dsUrl, string $bankAccountNumber, string $bankCode, string $reason, string $callbackUrl, string $expiresAt, string $billingZip = null, string $billingCity = null, string $billingAddress = null, string $billingState = null, string $billingCountry = null, string $currency = 'NGN', string $country = 'NG'); $response = Opay::transaction()->initializeTokenTransaction(string $reference, float $amount, string $customerPhone, string $customerEmail, string $reason, string $callbackUrl, string $expiresAt, string $token, string $currency = 'NGN', string $country = 'NG'); $response = Opay::transaction()->initializeBankAccountTransaction(string $reference, float $amount, string $customerPhone, string $return3dsUrl, string $bankAccountNumber, string $bankCode, string $reason, string $bvn, string $dobDay, string $dobMonth, string $dobYear, string $currency = 'NGN', string $country = 'NG'); $response = Opay::transaction()->checkTransactionStatus(string $reference, string $orderNo); $response = Opay::transaction()->transactionInputPIN(string $reference, string $orderNo, string $pin); $response = Opay::transaction()->transactionInputOTP(string $reference, string $orderNo, string $otp); $response = Opay::transaction()->transactionInputPhone(string $reference, string $orderNo, string $phone); $response = Opay::transaction()->transactionInputDob(string $reference, string $orderNo, string $dob); $response = Opay::transaction()->initiateBankTransferTransaction(string $reference, string $userPhone, float $amount, string $userRequestIp, string $productName, string $productDesc, int $expiresAt = 30, string $currency = 'NGN'); $response = Opay::transaction()->getBankTransferTransactionStatus(string $reference, string $orderNo); $response = Opay::transaction()->initiateUSSDTransaction(string $reference, string $userPhone, float $amount, string $userRequestIp, string $productName, string $productDesc, int $expiresAt = 30, string $currency = 'NGN'); $response = Opay::transaction()->getUSSDTransactionStatus(string $reference, string $orderNo); //Bills $response = Opay::bills()->bettingProviders(); $response = Opay::bills()->validate(string $serviceType, string $provider, string $customerId); $response = Opay::bills()->bulkBills(BulkBillsListPayload $billsListPayload, string $callbackUrl, string $serviceType); $response = Opay::bills()->bulkStatus(BulkStatusRequest $bulkStatusRequest, string $serviceType);
测试
composer test
待办事项
- Webhook事件
贡献
请随意fork此包,并通过向GitHub提交拉取请求来增强其功能。
错误和问题
如果你在此包中发现任何错误或问题,请在此处创建问题问题
安全性
如果你发现任何与安全相关的问题,请发送电子邮件至yusufbenaiah@gmail.com。
如何感谢你?
为何不在GitHub仓库上点赞,并在Twitter或其他社交平台上分享此仓库的链接。
别忘了在Twitter上关注我!
谢谢!Benaiah Yusuf
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。