瑞士DTA支付记录(TA 836)生成器库

swissdta的Python项目详细描述


VersionLicensehttps://img.shields.io/pypi/pyversions/swissdta.svgBuild StatusCodecovcontributors

瑞士dta的生成器库(“datentr_geraustauschverfahren”)电子支付记录的松散灵感来自python-dta

免责声明

在使用库之前,请使用您的基础结构检查和测试它。

作者不保证此库将生成有效的dta记录,也不负任何责任 任何财务问题(包括但不限于:未能付款、支付给错误的一方, 付款金额不正确,财务损失)。

使用此库即表示您同意此免责声明。

许可证

分布在MIT License

功能

  • 支持事务类型836890
  • 实现DTA Standards and Formats中指定的大多数验证规则。
  • 支持十进制日期和带或不带空格的IBAN作为输入值
  • 自动生成TA 890记录
  • 自动处理序列号
  • 自动为参考(TA 836)的前5个字符使用发送者标识。
  • 货币代码检查(通过iso4217
  • 剪切超长的字母数字字段(如地址或用途)
  • 允许的ISO拉丁代码8859-1字符的自动转换
  • 具有有效值约束的字段的枚举(例如swissdta.constants.IdentificationPurpose
  • 正常默认值
  • 生成正确(拉丁语-1)编码字节的序列
  • 键入批注

开始

生成包含836类型的单个事务的DTA文件:

fromdatetimeimportdatetime,timedeltafromdecimalimportDecimalfromswissdtaimportChargesRule,DTAFile,IdentificationPurposedta_file=DTAFile(sender_id='ABC12',client_clearing='8888')dta_file.add_836_record(reference='01234567890',# only 11 chars, the first 5 (sender id) are added automaticallyclient_account='CH38 0888 8123 4567 8901 2',processing_date=datetime.now()+timedelta(days=1),# next daycurrency='CHF',amount=Decimal(10),client_address=('Alphabet Inc','Brandschenkestrasse 110','8002 Zürich'),recipient_iban='CH9300762011623852957',recipient_name='Herr Peter Haller',recipient_address=('Marktplaz 4','9400 Rorschach'),identification_purpose=IdentificationPurpose.UNSTRUCTURED,purpose=('DTA lib example','',''),charges_rules=ChargesRule.OUR)print(dta_file.generate().decode('latin-1'))"""
>>> print(dta_file.generate().decode('latin-1'))
01000000            000001708308888   ABC120000183600ABC1201234567890CH3808888123456789012   170831CHF10,
02            Alphabet Inc                       Brandschenkestrasse 110            8002 Zuerich
03D                                                                      CH9300762011623852957
04Herr Peter Haller                  Marktplaz 4                        9400 Rorschach
05UDTA lib example                                                                                          0
01000000            00000170830       ABC12000028900010,

"""

文档和测试

要生成文档并运行测试,请安装开发依赖项:

pipenv install --dev

跑步排毒

pipenv run detox

仅生成文档

pipenv run tox -e docs

只运行测试

pipenv run tox -e py36

只对代码进行lint操作

pipenv run tox -e pylint-tests,pylint

限制

  • 要借记TA 836的帐户(client_account)只接受IBAN
  • 受益人的银行清算编号未经银行注册处验证,无法检查其是否有效(TA 836)。
  • 如果标识目的设置为结构化(TA 836),则不进行IPI引用验证。
  • 不存在现有DTA文件或记录
  • 的解析功能
  • 缺少测试(应尽快修复…)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java TestNG跨浏览器测试在启动第一个浏览器后失败   java如何根据本地存储数据设置默认下拉值和选择   数组Java程序以打印字符串中只有一次可用的字符   java A4j:commndButton和A4j:commandLink未显示在输出中   javajavax。servlet。Apache Karaf 2.3.0中的http包   如果对象是可序列化/可打包的,则java是可序列化/可打包的数组   如果实现了自动关闭,java Helper将调用close()?   java不能转换为org。springframework。奥姆。冬眠4。LocalSessionFactoryBean   java Eclipse不会启动JVM不兼容   java Hibernate关系错误   java我应该设置“从池中获取连接”的超时吗?   java Spring引导连接到docker服务mongodb   java NullPointerException从何而来?   java JSP使src url的结尾成为javascript变量   java spring父上下文和子上下文之间有什么区别?