mikkycody / laravel-woven
一个用于无缝集成Woven Finance的Laravel包
dev-main
2023-02-04 00:29 UTC
Requires (Dev)
- mockery/mockery: ^1.3
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^8.4|^9.0
- scrutinizer/ocular: ~1.1
This package is auto-updated.
Last update: 2024-09-04 03:59:59 UTC
README
一个用于无缝集成Woven Finance的Laravel包
安装
要获取Laravel Woven的最新版本,只需要求它
composer require mikkycody/laravel-woven
运行 composer install
或 composer update
下载它并更新自动加载器。
一旦安装了包,您需要注册服务提供者。打开 config/app.php
并将以下内容添加到 providers
键。
'providers' => [ ... Mikkycody\Woven\WovenServiceProvider::class, ... ]
如果您使用 Laravel >= 5.5 可以跳过此步骤
Mikkycody\Woven\WovenServiceProvider::class
此外,按照如下方式注册Facade
'aliases' => [ ... 'Woven' => Mikkycody\Woven\Facades\Woven::class, ... ]
配置
使用此命令发布配置文件
php artisan vendor:publish --provider="Mikkycody\Woven\WovenServiceProvider"
将创建一个名为 woven.php
的配置文件在你的 config
目录中
<?php return [ /** * Woven API Secret From Woven Dashboard */ 'wovenSecret' => getenv('WOVEN_SECRET'), /** * Woven API Key From Woven Dashboard */ 'wovenKey' => getenv('WOVEN_KEY'), ];
使用
打开您的 .env 文件,并添加您的公钥、密钥、商家电子邮件和支付URL,如下所示
WOVEN_KEY=vb_tk_XXXXXXXXXXXXXXX WOVEN_SECRET=vb_ts_XXXXXXXXXXXXXXX
示例控制器使用
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Woven; class WovenController extends Controller { public function createVirtualAccount(){ $data = [ "customer_reference" => "Kaela_Carroll", "name" => "Joey Hegmann", "email" => "jones_adelaide@mail.com", "mobile_number" => "08012345678", "expires_on" => "2021-11-01", "use_frequency" => "5", "min_amount" => 100, "max_amount" => 12000, "callback_url" => "https://yourcallbackurl.com", "destination_nuban" => "", "meta_data" => [ "somedatakey" => "somedatavalue" ] ]; $response = Woven::createNewCustomerAccount($data); // You can now perform any action with the response , store needed details to your database or redirect } } ?>
让我在这里解释一下这个包提供的方法。
注意:所有方法都可以通过辅助函数访问,例如:woven(),例如 woven()->generateRef() 等同于 Woven::generateRef()。
$prefix = "WOV"; $vnuban = 'XXXXXXXXXX'; $mandate_reference = 'XXXXXXXXXXX'; /** * This method generates a unique reference * @param array $prefix (Optional) */ Woven::generateRef($prefix); /** * This method creates Virtual Account And Customer * @param array $data */ $data = [ "customer_reference" => "Kaela_Carroll", "name" => "Joey Hegmann", "email" => "jones_adelaide@mail.com", "mobile_number" => "08012345678", "expires_on" => "2021-11-01", "use_frequency" => "5", "min_amount" => 100, "max_amount" => 12000, "callback_url" => "https://requesturl.com", "destination_nuban" => "", "meta_data" => [ "somedatakey" => "somedatavalue" ] ]; Woven::createNewCustomerAccount($data); /** * Create Virtual Account For Existing Customer * @param array $data */ $data = [ "customer_reference" => "unique_reference_001", "expires_on" => "2021-11-01", "use_frequency" => "5", "min_amount" => 100, "max_amount" => 12000, "callback_url" => "https://requesturl.com", "destination_nuban" => "" ]; Woven::createExistingCustomerAccount($data); /** * Fetch Virtual Accounts * @param array $query (Optional) */ //query options $query = [ 'vNUBAN' => 'XXXXXXXXXX', 'from' => 'YYYY-MM-DD hh:mm', 'to' => 'YYYY-MM-DD hh:mm', 'account_reference' => 'XXXXXXXXXX', 'status' => 'ACTIVE' //ACTIVE, INACTIVE ] Woven::fetchAccounts($query) /** * Get Virtual Account By VNUBAN * @param string $vnuban */ Woven::getAccount($vnuban) /** * Update Virtual Account By VNUBAN * @param string $vnuban * @param array $data */ $data = [ "expires_on" => "2021-11-01", "use_frequency" => "5", "min_amount" => 2000, "max_amount" => 120000, "callback_url" => "http://callbackurl.com", "meta_data" => [ "somedatakey" => "somedatavalue" ], "destination_nuban" => "0427521260" ]; Woven::updateAccount($vnuban, $data) /** * Fetch Transactions By VNUBAN Or Customer Reference * @param array $query (Optional) */ $query = [ 'unique_reference' => 'XXXXXXXXXXXX', 'from' => 'YYYY-MM-DD hh:mm', 'to' => 'YYYY-MM-DD hh:mm', 'amount' => 1000, 'transaction_type' => 'transfer' //transfer, payout, direct_debit , funding. ] Woven::fetchAccountTransactions($query) /** * Fetch Single Transaction * @param string $unique_reference */ $unique_reference = 'XXXXXXXXXXX'; Woven::fetchTransaction($unique_reference) /** * Create Mandate * @param array $data */ $data = [ "customer_name" => "Adelaide Jones", "customer_email" => "yadeka@gmail.com", "customer_mobile" => "08012345678", "customer_reference" => "CUST001", "account_number" => "0012345679", "bank_code" => "044", "amount" => 100, "currency" => "NGN", "call_back_url" => "merchant.notify.com", "mandate_type" => "direct", "narration" => "My Lunch order and PS5", "frequency" => "weekly", "start_date" => "2020-11-30", "end_date" => "2020-12-1", "meta_data" => [ "product_id" => "AB001" ] ]; Woven::createMandate($data) /** * Validate Mandate * @param string $reference * @param string $otp */ $otp = '1001'; Woven::validateMandate($mandate_reference, $otp) /** * Resend OTP * @param string $mandate_reference */ Woven::resendOTP($mandate_reference) /** * Fetch Mandates * @param string $query (Optional) */ $query = [ 'page' => 1, 'limit' => 10 ] Woven::fetchMandates($query) /** * Fetch Mandate * @param string $mandate_reference */ $mandate_reference = 'XXXXXXXXXXX'; Woven::fetchMandate($mandate_reference) /** * Cancel Mandate * @param string $mandate_reference */ Woven::cancelMandate($mandate_reference /** * Edit Customer * @param string $customer_reference * @param array $data */ $customer_reference = 'XXXXXXXX'; $data = [ "customer_phone_number" => "111111111", "customer_email" => "a@b.com", "customer_name" => "ab" ]; Woven::editCustomer($customer_reference, $data) /** * Create Reserved Account * @param array $data */ $data = [ "account_name" => "Salary Account", "account_preference" => "SECONDARY" ]; Woven::reateReservedAccount($data) /** * Fetch Reserved Account * @param string $vnuban */ Woven::fetchReservedAccount($vnuban) /** * Single Payout * @param array $data */ $data = [ "source_account" => "9100887063", "PIN" => "3344", "beneficiary_account_name" => "Adelaide Jones", "beneficiary_nuban" => "***********", "beneficiary_bank_code" => "***********", "bank_code_scheme" => "NIP", "currency_code" => "NGN", "narration" => "Nov 2020", "amount" => 1000, "reference" => "4252673830", "sender_name" => "ETIM EZE", "callback_url" => "******", "meta_data" => [ "beneficiary_phone" => "08033212933", "beneficiary_email" => "johndoe@testme.com" ] ]; Woven::singlePayout($data) /** * Bulk Payout * @param array $data */ $data = [ "source_account" => "9100887063", "PIN" => "3344", "type" => "varied_amount", "payout_list" => [ [ "beneficiary_account_name" => "Adeleye Jones", "beneficiary_nuban" => "**********", "beneficiary_bank_code" => "******", "bank_code_scheme" => "NIP", "amount" => 1500, "currency_code" => "NGN", "narration" => "End of the month bonus", "reference" => "436909217984", "sender_name" => "ETIM EZE", "callback_url" => "******", "meta_data" => [ "beneficiary_phone" => "08033212933", "beneficiary_email" => "johndoe@testme.com" ] ], [ "beneficiary_account_name" => "Adeleye Jones", "beneficiary_nuban" => "**********", "beneficiary_bank_code" => "******", "bank_code_scheme" => "NIP", "amount" => 1500, "currency_code" => "NGN", "narration" => "End of the month bonus", "reference" => "436909217984", "sender_name" => "ETIM EZE", "callback_url" => "******", "meta_data" => [ "beneficiary_phone" => "08033212933", "beneficiary_email" => "johndoe@testme.com" ] ] ] ]; Woven::bulkPayout($data) /** * Schedule Payout * @param array $data */ $data =[ "source_account" => "9100887063", "PIN" => "3344", "beneficiary_account_name" => "Adelaide Jones", "beneficiary_nuban" => "***********", "beneficiary_bank_code" => "******", "bank_code_scheme" => "NIP", "currency_code" => "NGN", "narration" => "monthly dues", "amount" => 1000, "reference" => "4252673830", "sender_name" => "ETIM EZE", "payout_date_time" => "2021-08-05 12:30:00", "callback_url" => "******", "meta_data" => [ "beneficiary_phone" => "080833212933", "beneficiary_email" => "johndoe@testme.com" ] ]; Woven::schedulePayout($data) /** * Fetch Payouts * @param array $query (Optional) */ $query = [ 'unique_reference' => 'XXXXXXXXXX', 'payout_reference' => 'XXXXXXXXXX', 'beneficiary_account_name' => 'Adelaide Jones', 'beneficiary_nuban' => 'XXXXXXXX' 'amount' => 1000 ] Woven::fetchPayouts($query) /** * Fetch Banks */ Woven::banks() /** * Fetch Settlements * @param array $query (Optional) */ $query = [ 'settlement_date' => 'YYYY-MM-DD', 'settlement_nuban' => 'XXXXXXXXX', 'settlement_reference' => 'XXXXXXXXX', 'settlement_status' => 'SETTLED', //UNSETTLED , SETTLED, FAILED, 'amount' => 1000.00, 'amount_payable' => 1000.00, ] Woven::fetchSettlements($query) /** * Fetch Settlements * @param array $settlement_reference * @param array $query */ $settlement_reference = 'XXXXXXXXX', $query = [ 'transaction_referencee' => 'XXXXXXXXXX', 'amount' => 1000.00, 'transaction_date' => 'YYYY-MM-DD hh:mm', 'destination_nuban' => 'XXXXXXX' ] Woven::fetchSettlementTransactions($settlement_reference, $query) /** * Resolve Bank Account * @param array $data */ $data = [ "account_number" => "100123123", "bank_code" => "044" ]; Woven::resolveBankAccount($data) /** * Resolve Bvn Match * @param array $data */ $data = [ "account_number" => "100123123", "bank_code" => "044", "bvn" => "001213132112" ]; Woven::resolveBvnMatch($data) /** * Retrieve KYC * @param array $data */ $data = [ "account_number" => "100123123", "bank_code" => "044", "kyc_information" => true ]; Woven::retrieveKyc($data)
贡献
贡献非常受欢迎,请随意fork此包并通过提交拉取请求来改进功能。
编码愉快!
Michael George.
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。