跳转到主要内容

Python中iDEAL v3.3.1规范的实现。

项目描述

版本::
0.3.0
下载::

https://pypi.python.org/pypi/ideal

源代码::

https://github.com/maykinmedia/python-ideal

关键字::

python, ideal, django

Build status coverage MIT License Supported Python versions

关于

Python中iDEAL v3.3.1规范的实现。

安装

您可以通过Python包索引(PyPI)或从源代码安装ideal

使用pip安装

$ pip install -U ideal

用法

假设您已在银行请求了iDEAL的访问权限。

  1. 安装ideal

    $ pip install ideal
  2. 生成或定位您的证书(cert.cerpriv.pem)以及您的银行公钥证书(此处命名为 ideal_v3.cer,但取决于您的银行),并将它们放置在您的网络应用可以访问的文件夹中。

  3. 创建一个名为 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
  1. 在 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
  2. 设置加载完毕后,您就可以与 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字符串

用于识别端点的收单方代码。有效值有:[INGRABOBANK](默认:None)。

ACQUIRER_URL字符串

覆盖默认的收单方 URL 并忽略 ACQUIRERDEBUG 设置(默认:None)。

LANGUAGE字符串

响应语言,使用 ISO 639-1 格式,仅支持荷兰语(nl)和英语(en)(默认:nl)。

测试

要运行所有单元测试,请下载整个包并运行

$ python setup.py test

贡献

Django

  1. 所有设置都可以大写并前缀为 IDEAL_,然后放置在 Django 的 settings.py 文件中,而不是使用配置文件。当然,您仍然可以使用设置文件方法。

  2. ideal.contrib.django.ideal_compat 添加到您的 INSTALLED_APPS

  3. 运行 python manage.py migrate 在您的数据库中创建 Issuer 表,以存储所有发行方的本地副本。

  4. 运行 python manage.py sync_issuers 用发行方列表填充 Issuer 表。您应该每天或每隔一天使用 cronjob 运行此命令。

  5. 您应该创建一个视图来处理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>'
  6. 可选地,您可以将以下内容添加到主urls.py中,以测试您的配置并通过Web界面执行所有iDEAL操作。

    if settings.DEBUG:
        urlpatterns += [
            url(r'^ideal/tests/', include('ideal.contrib.django.ideal_compat.test_urls')),
        ]
  7. 如果您处于DEBUG模式并使用runserver,您可以将浏览器指向:https://:8000/ideal/tests/

项目详情


下载文件

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

源分布

ideal-0.3.0.tar.gz (34.2 kB 查看散列值)

上传时间

构建分布

ideal-0.3.0-py2.py3-none-any.whl (44.3 kB 查看散列值)

上传时间 Python 2 Python 3

由以下机构支持: