跳转到主要内容

Django Verify VAT number by ARES/VIES

项目描述

Django验证增值税登记号

Django验证增值税登记号模块是Verify VAT registration number项目的扩展,适用于Django框架。它用于验证欧盟的增值税登记号和捷克共和国的增值税识别号。此模块用于DjangoCMS验证增值税登记号模块。

VIES

欧盟VIES增值税号验证。它是验证欧盟内注册的经济操作者的增值税识别号的一种电子方式,用于商品或服务的跨境交易。支持的国家请参阅项目Verify VAT - VIES中的README。

ARES

ARES - 经济主体/实体登记册访问系统,是一个允许检索在捷克共和国注册的经济实体信息的信息系统。该系统在特定登记册(称为源登记册)中中转数据的显示,相关数据保存在这些登记册中。

安装

此库可在PyPI上找到,建议使用pip安装。

pip install django-verify-vat-number

添加到Django应用和urls

在站点settings.py中插入

INSTALLED_APPS = [
    ...
    'django_verify_vat_number',
]

在站点urls.py中插入

from django.urls import path, include

urlpatterns = [
    ....
    path('verify-vat/', include('django_verify_vat_number.urls')),
]

用法

按照编写您的第一个Django应用的说明来启动站点。然后您可以进行验证。

curl http://127.0.0.1:8000/verify-vat/verify-vat-id-number/?number=67985726

{"status": "OK", "message": null, "company": {
    "company_name": "CZ.NIC, z.s.p.o.",
    "address": "Mile\u0161ovsk\u00e1 1136/5\n13000 Praha 3",
    "street_and_num": "Mile\u0161ovsk\u00e1 1136/5",
    "city": "Praha 3",
    "postal_code": "13000",
    "district": "Praha 3 - Vinohrady",
    "country_code": "CZ"
}, "country": "Czechia"}

curl http://127.0.0.1:8000/verify-vat/verify-vat-reg-number/?number=CZ67985726

{"status": "OK", "message": null, "company": {
    "company_name": "CZ.NIC, z.s.p.o.",
    "address": "Mile\u0161ovsk\u00e1 1136/5\nPRAHA 3 - VINOHRADY\n130 00  PRAHA 3",
    "street_and_num": "Mile\u0161ovsk\u00e1 1136/5",
    "city": "PRAHA 3",
    "postal_code": "130 00",
    "district": "PRAHA 3 - VINOHRADY",
    "country_code": "CZ"
}, "country": "Czechia"}

当前站点语言的国家名称

国家名称已翻译成当前站点语言。

settings.py中定义语言

LANGUAGES = [
    ('en', 'English'),
    ('cs', 'Česky'),
    ('fr', 'Francais'),
]

MIDDLEWARE = [
    ...
    'django.middleware.locale.LocaleMiddleware',
]

url.py中启用语言前缀

urlpatterns += i18n_patterns(
    path('verify-vat/', include('django_verify_vat_number.urls')),
)

获取翻译后的国家名称

curl http://127.0.0.1:8000/cs/verify-vat/verify-vat-id-number/?number=67985726

{"status": "OK", "message": null, "company": {"company_name": ... "country_code": "CZ"},
 "country": "\u010cesko"}

curl http://127.0.0.1:8000/fr/verify-vat/verify-vat-id-number/?number=67985726
{"status": "OK", "message": null, "company": {"company_name": ... "country_code": "CZ"},
 "country": "Tch\u00e9quie"}

缓存

从服务器下载的数据被缓存。在下一次查询时,它们不再从验证服务中下载。默认缓存值为一天。可以通过设置VERIFY_VAT_KEEP_IN_CACHE常量来重置缓存中的数据持续时间。

日志记录

资源临时不可用被记录在INFO级别。意外错误被记录在ERROR级别,包括源响应。

暂时不可用服务的示例

2022-06-16 14:49:33,806 INFO     ares:get_xml_content:27 https://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?ico=67985726
2022-06-16 14:49:33,815 INFO     fetchers:fetch_from_ares:47 Service is temporarily unavailable. Please, try later.

意外服务故障的示例

022-06-16 14:55:10,039 INFO     ares:get_xml_content:27 https://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?ico=67985726
2022-06-16 14:55:10,042 ERROR    fetchers:fetch_from_ares:49 not well-formed (invalid token): line 1, column 11
2022-06-16 14:55:10,042 ERROR    fetchers:fetch_from_ares:50 <are:Error><dtt:Error_kod> ...

如果您想调试完整的通信,可以在日志记录器django_verify_vat_number.fetchersverify_vat_number.aresverify_vat_number.vies中设置。

settings.py

LOGGING = {
    ...
    'loggers': {
        'verify_vat_number.ares': {'handlers': ['console'], 'level': 'DEBUG'},
        'verify_vat_number.vies': {'handlers': ['console'], 'level': 'DEBUG'},
        'django_verify_vat_number.fetchers': {'handlers': ['console'], 'level': 'DEBUG'},
    }
}
2022-06-16 15:03:04,078 INFO     ares:get_xml_content:27 https://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?ico=67985726
2022-06-16 15:03:04,078 INFO     ares:get_xml_content:27 https://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?ico=67985726
2022-06-16 15:03:05,401 DEBUG    ares:get_xml_content:38 <?xml version="1.0" encoding="UTF-8"?><are:Ares_odpovedi
    ...
<are:Odpoved>
<are:Pocet_zaznamu>1</are:Pocet_zaznamu>
    ...
</are:Odpoved>
</are:Ares_odpovedi>
2022-06-16 15:10:39,020 INFO     fetchers:fetch_from_ares:30 Cached data: VerifiedCompanyResponse(status=<StatusCode.OK: 'OK'>, message=None, company=VerifiedCompany(company_name='CZ.NIC, z.s.p.o.', address='Milešovská 1136/5\n13000 Praha 3', street_and_num='Milešovská 1136/5', city='Praha 3', postal_code='13000', district='Praha 3 - Vinohrady', country_code='CZ'), country='Česko')

许可

GPLv3+

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

django_verify_vat_number-2.0.0.tar.gz (12.7 kB 查看哈希)

上传时间

构建分布

django_verify_vat_number-2.0.0-py3-none-any.whl (15.7 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面