moov/bai2Moov的使命是为开发者提供简单的方式来创建和集成银行处理功能到自己的软件产品中。我们的开源项目专注于解决***服务中的单一职责,围绕性能、可扩展性和易用性设计。
Bai2实现了银行管理协会(Bank Administration Institute)制定的现金管理余额报告规范第2版)的读取器、写入器和验证器。该项目提供一个包含HTTP服务器的Docker镜像和Go包github.com/moov-io/bai2。
Moov Bai2已在多个生产环境中积极使用。如果您对其进展感兴趣,请为项目点赞。如果您有基于Bai2的上层应用来简化任务、执行业务操作,或发现错误,欢迎提交issue或pull request。感谢您的支持!
Bai2项目实现了一个HTTP服务器和Go库,用于创建和修改BAI2格式文件。BAI2格式是一种通用格式,被美国大多数银行广泛接受。
我们在Docker Hub上发布了公开Docker镜像moov/bai2,包含每个标记的Bai2版本。无需配置即可在:8080端口提供服务。我们还为OpenShift提供Docker镜像,发布为quay.io/moov/bai2。
拉取并启动Docker镜像:
bashdocker pull moov/bai2:latest docker run -p 8080:8080 moov/bai2:latest
上传文件并解析:
bashcurl -X POST --form "input=@sample.txt" http://localhost:8080/parse
json{"status":"valid file"}
解析后打印文件:
bashcurl -X POST --form "input=@sample.txt" http://localhost:8080/print
01,0004,***,060321,0829,001,80,1,2/ 02,***,0004,1,060317,,CAD,/ 03,10200123456,CAD,040,+000000000000,,,045,+000000000000,,/ 88,100,000000000208500,00003,V,060316,,400,000000000208500,00008,V,060316,/ 16,409,000000000002500,V,060316,,,,RETURNED CHEQUE / 16,409,000000000090000,V,060316,,,,RTN-UNKNOWN / 16,409,000000000000500,V,060316,,,,RTD CHQ SERVICE CHRG/ 16,108,000000000203500,V,060316,,,,TFR 1020 0345678 / 16,108,000000000002500,V,060316,,,,MACLEOD MALL / 16,108,000000000002500,V,060316,,,,MASCOUCHE QUE / 16,409,000000000020000,V,060316,,,,1000 ISLANDS MALL / 16,409,000000000090000,V,060316,,,,PENHORA MALL / 16,409,000000000002000,V,060316,,,,CAPILANO MALL / 16,409,000000000002500,V,060316,,,,GALERIES LA CAPITALE/ 16,409,000000000001000,V,060316,,,,PLAZA ROCK FOREST / 49,+00000000000834000,000000014/ 03,10200123456,CAD,040,+000000000000,,,045,+000000000000,,/ 88,100,000000000111500,00002,V,060317,,400,000000000111500,00004,V,060317,/ 16,108,000000000011500,V,060317,,,,TFR 1020 0345678 / 16,108,000000000100000,V,060317,,,,MONTREAL / 16,409,000000000100000,V,060317,,,,GRANDFALL NB / 16,409,000000000009000,V,060317,,,,HAMILTON ON / 16,409,000000000002000,V,060317,,,,WOODSTOCK NB / 16,409,000000000000500,V,060317,,,,GALERIES RICHELIEU / 49,+00000000000446000,000000009/ 98,+00000000001280000,000000002,000000025/ 99,+00000000001280000,000000001,000000027/ ...
要在托管环境中开始使用,您可以将此项目部署到Google Cloud Platform。
从Google Cloud控制台创建新项目,命名为:
moov-bai2-demo
为项目启用Container Registry API,并关联账单账户(如需要)。然后,打开Cloud Shell终端,运行以下Docker命令,替换您的唯一项目ID:
bashdocker pull moov/bai2 docker tag moov/bai2 gcr.io/<PROJECT-ID>/bai2 docker push gcr.io/<PROJECT-ID>/bai2
将容器部署到Cloud Run:
bashgcloud run deploy --image gcr.io/<PROJECT-ID>/bai2 --port 8080
选择目标平台为1,服务名称为bai2,区域选择离您最近的(如出现提示,启用Google API服务)。部署成功后,您将获得API部署的URL:
[***]
现在可以执行健康检查:
bashcurl [***]
应得到响应:
json{"health":true}
根据设计,Bai2不持久化(保存)任何关于创建的文件或条目详情的数据。唯一的存储发生在进程内存中,重启Bai2后将不会保存任何文件或数据。此外,不对数据进行内存加密。
该项目使用Go Modules,需要Go v1.18或更高版本。有关设置Go的帮助,请参见Golang安装说明。您可以下载源代码,我们也提供标记和发布版本。强烈建议在生产环境中使用标记版本。
bash$ ***:moov-io/bai2.git $ go get -u github.com/moov-io/bai2 $ go doc github.com/moov-io/bai2
Bai2提供命令行界面,用于管理BAI2文件和启动Web服务。
bashbai2 --help Usage: [command] Available Commands: help Help about any command print Print bai2 file parse Parse bai2 file web Launches web server Flags: -h, --help help for this command --input string bai2 report file Use " [command] --help" for more information about a command.
库支持的每种交互都通过命令行选项公开:
| 命令 | 说明 |
|---|---|
print | 打印BAI2文件 |
parse | 解析BAI2文件 |
web | 启动Web服务器 |
| 渠道 | 信息 |
|---|---|
| *** @moov | 关注Moov.io的***获取项目更新,也可发送问题或分享博客/故事。 |
| GitHub Issue | 如能复现问题,请在相关项目下打开GitHub Issue。 |
| moov-io slack | 加入(#bai2)slack频道参与项目开发讨论。 |
欢迎贡献!请查看我们的贡献指南和行为准则开始!
该项目使用Go Modules,需要Go v1.18或更高版本。有关设置Go的帮助,请参见Golang安装说明。您可以下载源代码,我们也提供标记和发布版本。强烈建议在生产环境中使用标记版本。
要发布bai2版本,只需打开一个pull request,更新CHANGELOG.md和version.go,包含下一个版本号和详细信息。还需要将标签(如git push origin v1.0.0)推送到origin,以便CI进行发布。
我们维护全面的单元测试套件,建议在特定函数需要多个类似测试用例时使用表格驱动测试。要运行当前目录中的所有测试文件,使用go test。当前总体覆盖率可在Codecov上查看。
我们目前通过moov/bai2 Docker镜像对ImageCashLetter进行模糊测试。您可以了解更多或运行该镜像,并向***报告崩溃示例。谢谢!
作为Moov提供开源***科技基础设施计划的一部分,我们有许多活跃项目可能对您有用:
Moov Watchman:提供对美国和欧盟众多贸易制裁清单的搜索功能。
Moov Fed:实现用于搜索美国联邦储备系统的实用服务,如ABA路由号码、***机构名称查找以及FedACH和Fedwire路由信息。
Moov Wire:实现用于Fedwire资金服务的文件写入接口,这是由美国联邦储备银行运营的实时全额结算资金转账系统。
Moov ACH:提供ACH文件生成和解析,支持美国主要资金转移方式的所有标准条目代码。
Moov Image Cash Letter:实现用于Check21、X.9或支票截断文件的图像现金信函(ICL)文件,用于美国的交换和远程存款。
Apache License 2.0 - 详见LICENSE。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务