azaharizaman/nexus-payment-bank
Composer 安装命令:
composer require azaharizaman/nexus-payment-bank
包简介
Payment bank extension providing direct bank integrations for real-time payments, open banking (PSD2), and bank account verification
README 文档
README
Version: 0.1.0
Status: In Progress (see IMPLEMENTATION_SUMMARY.md for details)
PHP: ^8.3
Extends: azaharizaman/nexus-payment
Overview
Nexus\PaymentBank is an extension package for Nexus\Payment providing direct bank integrations for open banking (PSD2/Open Banking UK), real-time payments (RTP, FAST, SEPA Instant), and bank account verification services (Plaid, Yodlee, MX).
It provides a unified abstraction layer over various banking providers, handling connection lifecycles, account data retrieval, ownership verification, and payment initiation.
Installation
composer require azaharizaman/nexus-payment-bank
Features
- Bank Connection Management: Securely link and manage bank connections (OAuth2, Credentials).
- Account Information: Retrieve account details, balances, and transaction history.
- Account Verification: Verify account ownership via instant verification or micro-deposits.
- Payment Initiation: Initiate and track payments directly from bank accounts (PIS).
- Security: Built-in encryption for sensitive credentials using
Nexus\Crypto.
Architecture
This package follows the Nexus Monorepo architecture:
- Contracts: Define the behavior (
src/Contracts). - Services: Implement the business logic (
src/Services). - Entities: Rich domain models (
src/Entities). - Providers: Adapter pattern for external banking APIs (
src/Contracts/ProviderInterface).
Usage
1. Managing Bank Connections
Use BankConnectionManagerInterface to handle the lifecycle of a bank connection.
use Nexus\PaymentBank\Contracts\BankConnectionManagerInterface; public function connect(BankConnectionManagerInterface $manager) { // 1. Initiate connection flow $result = $manager->initiateConnection( providerName: 'plaid', tenantId: 'tenant-1', parameters: [ 'redirect_url' => 'https://app.example.com/callback', 'scopes' => ['transactions', 'auth'] ] ); // Redirect user to the authorization URL from $result // 2. Complete connection after callback $connection = $manager->completeConnection( providerName: 'plaid', tenantId: 'tenant-1', callbackData: [ 'public_token' => 'public-token-from-callback', 'institution_id' => 'ins_123' ] ); }
2. Retrieving Account Data
Use AccountServiceInterface to fetch account information.
use Nexus\PaymentBank\Contracts\AccountServiceInterface; public function showAccounts(AccountServiceInterface $service, string $connectionId) { // Get all accounts for a connection $accounts = $service->getAccounts($connectionId); foreach ($accounts as $account) { echo $account->getName() . ': ' . $account->getBalance()->getAmount(); } // Get transactions $transactions = $service->getTransactions( connectionId: $connectionId, accountId: $accounts[0]->getId(), startDate: new \DateTimeImmutable('-30 days'), endDate: new \DateTimeImmutable('now') ); }
3. Verifying Accounts
Use VerificationServiceInterface for KYC and ownership checks.
use Nexus\PaymentBank\Contracts\VerificationServiceInterface; public function verify(VerificationServiceInterface $service, string $connectionId, string $accountId) { // Instant verification (e.g., Plaid Identity) $verificationResult = $service->verifyOwnership($connectionId, $accountId, [ 'name' => 'John Doe', 'email' => 'john@example.com' ]); // Micro-deposit verification $verificationId = $service->initiateMicroDeposits($connectionId, $accountId); // ... later ... $verified = $service->verifyMicroDeposits($connectionId, $verificationId, [0.12, 0.45]); }
4. Initiating Payments
Use PaymentInitiationServiceInterface for PIS (Payment Initiation Services).
use Nexus\PaymentBank\Contracts\PaymentInitiationServiceInterface; use Nexus\PaymentBank\ValueObjects\Beneficiary; use Nexus\Common\ValueObjects\Money; public function pay(PaymentInitiationServiceInterface $service, string $connectionId, string $sourceAccountId) { $beneficiary = new Beneficiary( name: 'Acme Corp', iban: 'GB82WEST12345698765432', bic: 'WESTGB21XXX', address: '123 Business St, London' ); $result = $service->initiatePayment( connectionId: $connectionId, sourceAccountId: $sourceAccountId, beneficiary: $beneficiary, amount: Money::of(100, 'USD'), reference: 'INV-001' ); // Check status $status = $service->getPaymentStatus($connectionId, $result->paymentId); }
Testing
composer test
License
MIT License. See LICENSE for details.
azaharizaman/nexus-payment-bank 适用场景与选型建议
azaharizaman/nexus-payment-bank 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 05 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「payment」 「Bank」 「ERP」 「open-banking」 「psd2」 「real-time-payments」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 azaharizaman/nexus-payment-bank 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 azaharizaman/nexus-payment-bank 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 azaharizaman/nexus-payment-bank 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Symfony integration for Czech bank account library
Check for holidays - localeaware
A basic wrapper for citco/carbon which returns business days between two given dates.
Bundle for managing synchronization of Serpa data with Sylius Sync Bundle
Iranian payment gateways handler for laravel applicationss
Connect your PHP driven web application with Open ERP
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 49
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-04