在python中实现理想的v3.3.1规范。

ideal的Python项目详细描述


Version:0.3.0
Download:https://pypi.python.org/pypi/ideal
Source:https://github.com/maykinmedia/python-ideal
Keywords:python, ideal, django

Build statuscoverageMIT LicenseSupported Python versions

关于

在python中实现理想的v3.3.1规范。

安装

您可以通过python包索引(pypi)或 来源。

使用pip

安装
$ pip install -U ideal

用法

假设您已经向理想银行申请了访问权限。

  1. 安装理想库

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

  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中,确保通过加载配置文件来初始化设置:

    fromideal.confimportsettingssettings.load('ideal.cfg')# You may adjust (or completely define) your settings (capitalized) in Python as wellsettings.DEBUG=True
  2. 加载设置后,您可以与理想通信:

    fromideal.clientimportIdealClientideal=IdealClient()response=ideal.get_issuers()printresponse.issuers

设置

这些设置是小写的,存储在ideal.cfg文件(或django的settings.py中,前缀为 IDEAL_)。

debugboolean
如果设置为True,则使用收单机构的测试URL,否则使用生产URL(默认值:True)。
私钥文件string
商家私钥的绝对路径(默认值:priv.pem)。
私钥密码string
访问商户私钥的密码。
私有证书string
指向商家专用证书的绝对路径(默认值:cert.cer)。
证书list或逗号分隔的string如果使用文件配置)
绝对路径收单机构的理想证书(默认值:ideal_v3.cer)。
商人idstring
在线商店的ID,在理想的注册过程中由接受方接收。
子idstring
在线商店的子ID,在注册过程中也会收到(默认值:0)。
merchant_return_urlstring
理想的回调url。在收单机构完成支付流程后,客户将被重定向到此URL。
有效期string
事务以ISO 8601格式有效,最小值为1分钟,最大值为1小时。 (默认值:PT15M)。
收单机构string
识别端点的收单机构代码。有效值为:[INGRABOBANK](默认值为None)。
收单机构URLstring
覆盖默认收单机构URL并忽略ACQUIRERDEBUG设置(默认值:None)。
语言string
ISO 639-1格式的响应语言,仅支持荷兰语(^{TT36}$)和英语(^{TT37}$)(默认值:^{TT36}$)。

测试

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

$ 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. 您应该创建一个视图来处理理想的回调并添加url(在您的设置中定义为 MERCHANT_RETURN_URL)到您的urls.py。下面,您将找到一个示例视图,根据 特兰动作状态:

    fromdjango.views.generic.baseimportRedirectViewfromideal.clientimportIdealClient,TransactionStatusfromideal.exceptionsimportIdealExceptionclassIdealCallbackView(RedirectView):permanent=Falsedefget_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'))ifresponse.status==TransactionStatus.SUCCESS:# Redirect to some view with a success message.return'<payment success url>'exceptIdealException,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界面进行操作:

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

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

推荐PyPI第三方库


热门话题
返回数组无效的java方法   异步Java CompletableFuture获取其请求   java是否可以像RDBMS那样使用视图?   java如何在屏幕上只运行一个片段?   java无法从Vertex jdbc查询中获取结果   java从jtable获取对象的正确方法   java Spring 3数据设备替代方案   Java BigDecimal:四舍五入到客户首选的数字和增量   JAVA主窗口没有出现,我必须左键单击主窗口。java并单击run查看它   Eclipse RCP中的java进程自定义设备事件   JavaEclipse一次又一次地构建代码(没有任何更改)?   java如何实现对象合并