3neti/settlement-envelope
Composer 安装命令:
composer require 3neti/settlement-envelope
包简介
Driver-based evidence envelope system for settlement gating
README 文档
README
A driver-based evidence envelope system for settlement gating. This package provides a structured way to collect and validate evidence before allowing settlement of financial transactions.
Installation
composer require 3neti/settlement-envelope
Core Concepts
- Envelope: A container bound to a settlement reference (e.g., voucher code, loan ID)
- Driver: A YAML configuration that defines the schema, checklist, permissions, and gates
- Payload: Versioned JSON metadata attached to the envelope
- Attachments: Typed document uploads with review workflow
- Signals: External boolean flags (e.g., KYC passed, account created)
- Gates: Computed readiness states that determine when settlement is allowed
Usage
Creating an Envelope
use LBHurtado\SettlementEnvelope\Services\EnvelopeService; $service = app(EnvelopeService::class); $envelope = $service->create( referenceCode: 'BST-001', driverId: 'bank.home-loan-takeout', initialPayload: [ 'borrower' => ['full_name' => 'Juan Dela Cruz'], 'loan' => ['tcp' => 2000000, 'amount' => 1800000], ] );
Updating Payload
$service->updatePayload($envelope, [ 'loan' => ['ltv' => 0.9] ]);
Uploading Attachments
$attachment = $service->uploadAttachment( $envelope, 'BORROWER_ID_FRONT', $uploadedFile );
Setting Signals
$service->setSignal($envelope, 'kyc_passed', true); $service->setSignal($envelope, 'account_created', true);
Checking Settleable Status
if ($envelope->isSettleable()) { $service->lock($envelope); $service->settle($envelope); }
Driver Configuration
Create YAML driver files in config/envelope-drivers/:
driver: id: "my-driver" version: "1.0.0" title: "My Settlement Driver" payload: schema: id: "my-driver.v1" format: "json_schema" inline: type: "object" required: ["name"] properties: name: type: "string" documents: registry: - type: "ID_DOCUMENT" title: "ID Document" allowed_mimes: ["application/pdf", "image/jpeg"] max_size_mb: 10 checklist: template: - key: "name_provided" kind: "payload_field" payload_pointer: "/name" required: true - key: "id_uploaded" kind: "document" doc_type: "ID_DOCUMENT" required: true review: "required" signals: definitions: - key: "approved" type: "boolean" default: false gates: definitions: - key: "settleable" rule: "checklist.required_accepted && signal.approved"
Model Integration
Add the HasEnvelopes trait to any model:
use LBHurtado\SettlementEnvelope\Traits\HasEnvelopes; class Voucher extends Model { use HasEnvelopes; } // Usage $voucher->createEnvelope('bank.home-loan-takeout'); $voucher->isEnvelopeSettleable();
Events
The package fires the following events:
EnvelopeCreatedPayloadUpdatedAttachmentUploadedAttachmentReviewedSignalChangedGateChanged
License
MIT
3neti/settlement-envelope 适用场景与选型建议
3neti/settlement-envelope 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 65 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 3neti/settlement-envelope 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 3neti/settlement-envelope 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 65
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 30
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-26