Python中iDEAL v3.3.1规范的实现。
项目描述
- 版本::
- 0.3.0
- 下载::
- 源代码::
- 关键字::
python, ideal, django
关于
Python中iDEAL v3.3.1规范的实现。
安装
您可以通过Python包索引(PyPI)或从源代码安装ideal。
使用pip安装
$ pip install -U ideal
用法
假设您已在银行请求了iDEAL的访问权限。
安装ideal库
$ pip install ideal
生成或定位您的证书(cert.cer 和 priv.pem)以及您的银行公钥证书(此处命名为 ideal_v3.cer,但取决于您的银行),并将它们放置在您的网络应用可以访问的文件夹中。
创建一个名为 ideal.cfg 的配置文件(或复制并修改 ideal-example.cfg)
[ideal] debug = 1 private_key_file = priv.pem private_key_password = secret private_certificate = cert.cer certificates = ideal_v3.cer merchant_id = 123456789 sub_id = 0 merchant_return_url = https://www.example.com/ideal/callback/ acquirer = ING
在 Python 中,确保通过加载配置文件初始化您的设置
from ideal.conf import settings settings.load('ideal.cfg') # You may adjust (or completely define) your settings (capitalized) in Python as well settings.DEBUG = True
设置加载完毕后,您就可以与 iDEAL 进行通信
from ideal.client import IdealClient ideal = IdealClient() response = ideal.get_issuers() print response.issuers
设置
这些设置是小写并存储在您的 ideal.cfg 文件中(或在 Django 的 settings.py 中,前缀为 IDEAL_)。
- DEBUG (布尔值)
如果设置为 True,则使用收单方的测试 URL,否则使用生产 URL(默认:True)。
- PRIVATE_KEY_FILE (字符串)
商户私钥的绝对路径(默认:priv.pem)。
- PRIVATE_KEY_PASSWORD (字符串)
访问商户私钥的密码。
- PRIVATE_CERTIFICATE (字符串)
商户私证书的绝对路径(默认:cert.cer)。
- CERTIFICATES (列表 或如果使用文件配置,则用逗号分隔的 字符串)
收单方 iDEAL 证书的绝对路径(默认:ideal_v3.cer)。
- MERCHANT_ID (字符串)
在线商店的 ID,在 iDEAL 注册过程中由接受方接收。
- SUB_ID (字符串)
在线商店的子 ID,也在注册过程中接收(默认:0)。
- MERCHANT_RETURN_URL (字符串)
iDEAL 的回调 URL。客户在收单方的支付过程完成后将被重定向到此 URL。
- EXPIRATION_PERIOD (字符串)
交易在 ISO 8601 格式下的有效时间,最小值为 1 分钟,最大值为 1 小时(默认:PT15M)。
- ACQUIRER (字符串)
用于识别端点的收单方代码。有效值有:[ING,RABOBANK](默认:None)。
- ACQUIRER_URL (字符串)
覆盖默认的收单方 URL 并忽略 ACQUIRER 和 DEBUG 设置(默认:None)。
- LANGUAGE (字符串)
响应语言,使用 ISO 639-1 格式,仅支持荷兰语(nl)和英语(en)(默认:nl)。
测试
要运行所有单元测试,请下载整个包并运行
$ python setup.py test
贡献
Django
所有设置都可以大写并前缀为 IDEAL_,然后放置在 Django 的 settings.py 文件中,而不是使用配置文件。当然,您仍然可以使用设置文件方法。
将 ideal.contrib.django.ideal_compat 添加到您的 INSTALLED_APPS。
运行 python manage.py migrate 在您的数据库中创建 Issuer 表,以存储所有发行方的本地副本。
运行 python manage.py sync_issuers 用发行方列表填充 Issuer 表。您应该每天或每隔一天使用 cronjob 运行此命令。
您应该创建一个视图来处理iDEAL回调,并将URL(如您的设置中定义的MERCHANT_RETURN_URL)添加到您的urls.py文件中。以下是一个示例视图,用于根据交易状态重定向用户。
from django.views.generic.base import RedirectView from ideal.client import IdealClient, TransactionStatus from ideal.exceptions import IdealException class IdealCallbackView(RedirectView): permanent = False def get_redirect_url(self, **kwargs): """ Simplistic view to handle the callback. You probably want to update your database with the transaction status as well, or sent a confirmation email, etc. """ client = IdealClient() try: response = client.get_transaction_status(self.request.GET.get('trxid')) if response.status == TransactionStatus.SUCCESS: # Redirect to some view with a success message. return '<payment success url>' except IdealException, e: # Do something with the error message. error_message = e.message # Redirect to some view with a failure message. return '<payment failed url>'
可选地,您可以将以下内容添加到主urls.py中,以测试您的配置并通过Web界面执行所有iDEAL操作。
if settings.DEBUG: urlpatterns += [ url(r'^ideal/tests/', include('ideal.contrib.django.ideal_compat.test_urls')), ]
如果您处于DEBUG模式并使用runserver,您可以将浏览器指向:https://:8000/ideal/tests/。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。
源分布
构建分布
ideal-0.3.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | f699475e0ae592056ed9e4a28d2d32ffc91950e4ed9de920ca9c7ff853a40749 |
|
MD5 | 544db84102d840ee8320d4b23bb5913b |
|
BLAKE2b-256 | f30a42d7b3d2adad42ab0306b8e0e8502ee128a2422a157675a7ef28f32117e4 |
ideal-0.3.0-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 445212b3c312b9094e399fc9041710d24645bb76714a8e09632ca2679a5d54b1 |
|
MD5 | bcc1541191586fd46b9324daebc295fa |
|
BLAKE2b-256 | 5eddb671144cea8b5143b9a5eaf8d5efd56f6cbc0f8780b39bdb48dafff9a4fa |