Django应用,用于Trustpay支付网关API。
项目描述
Django应用,用于TrustPayClient支付网关API。
在Django 1.4.5上进行了测试。
需求
Django
建议
django-detective (它很有用,但不是必需的。它跟踪所有站点请求。)
安装
使用pip安装Python库: pip install django-trustpay
将 trustpay 添加到Django设置文件中的 INSTALLED_APPS
将 trustpay.urls 添加到Django项目的 urls.py
将 HOST_URL 设置为带有http/https协议前缀的主机名。例如: https://www.mysite.com
设置TrustPay设置。见下文。
同步数据库
设置
- TRUSTPAY_AID_TEST
测试环境的客户端AID。
- TRUSTPAY_AID_LIVE
生产环境的客户端AID。
- TRUSTPAY_SECRET_KEY_TEST
测试环境的客户端密钥。
- TRUSTPAY_SECRET_KEY_LIVE
生产环境的客户端密钥。
- TRUSTPAY_PAYMENT_SERVICE_URL_TEST
测试环境的TrustPay支付服务URL。默认:'https://test.trustpay.eu/mapi/paymentservice.aspx'
- TRUSTPAY_PAYMENT_SERVICE_URL_LIVE
生产环境的TrustPay支付服务URL。默认:'https://ib.trustpay.eu/mapi/paymentservice.aspx'
- TRUSTPAY_CLIENT_REDIRECT_URL_TEST
TrustPay 测试环境的客户端重定向URL。默认值:'https://test.trustpay.eu/mapi/pay.aspx'
- TRUSTPAY_CLIENT_REDIRECT_URL_LIVE
TrustPay 生产环境的客户端重定向URL。默认值:'https://ib.trustpay.eu/mapi/pay.aspx'
- TRUSTPAY_SUCCESS_RETURN_URL
成功返回URL。默认值:u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_success_return'))
- TRUSTPAY_ERROR_RETURN_URL
错误返回URL。默认值:u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_error_return'))
- TRUSTPAY_CANCEL_RETURN_URL
取消返回URL。默认值:u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_cancel_return'))
- TRUSTPAY_NOTIFICATION_URL
通知URL。默认值:u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_notification'))
- TRUSTPAY_NOTIFICATION_EMAIL
通知电子邮件。默认值:ADMINS[0][0] or None
用法
准备支付数据
在结账视图中准备TrustPay支付数据
trustpay_payment_data = { # required 'amount': 123.45, 'currency': trustpay.CURRENCY_EUR, 'reference': u'ORDER-123', # Don't put # sign in reference. It will be returned back as GET parameter. # not required 'language': get_language_code(request), 'country': trustpay.COUNTRY_SLOVAK_REPUBLIC, 'description': u'This is Trustpay test payment', 'customer_email': u'example@example.net' }
并创建带有隐藏字段和“支付”提交按钮的TrustPay表单
trustpayform = TrustPayClient(is_test=settings.DEBUG).get_form(**trustpay_payment_data)
渲染支付表单
将TrustPay表单放入您的模板中
{% include 'trustpay/helpers/form.html' with form=trustpayform submit_label='Pay with TrustPay' %}
处理返回视图
默认情况下,SuccessReturnView、ErrorReturnView、CancelReturnView会简单地打印请求数据和错误信息(如果有)。您应该覆盖模板 trustpay/success_return.html、trustpay/error_return.html 和 trustpay/cancel_return.html 或定义您自己的返回视图。如果您决定使用自己的返回视图,别忘了设置 TRUSTPAY_SUCCESS_RETURN_URL、TRUSTPAY_ERROR_RETURN_URL 和 TRUSTPAY_CANCEL_RETURN_URL 设置。
处理通知视图
trustpay.views.NotificationView 将从TrustPay服务存储的每个通知存储到数据库中。您不应该在这个视图(reverse('trustpay_notification'))上设置基本认证或其他任何认证,因为TrustPay无法访问它。
我建议您创建一个cron作业,该作业将处理每个安全通知(带有标志 is_safe - 这表示商户的支付请求已被签名,返回签名是正确的)。
辅助工具
- get_result_message(result_code)
通过结果代码返回结果消息
- get_language_code(request)
通过请求返回TrustPay支持的语言代码
常量
trustpay 包包含所有TrustPay支持货币和国家。
项目详情
django-trustpay-0.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a86566ee20e2b62526d890bcc284b1838eab87c97c67f36186266b116bd31381 |
|
MD5 | b202337f5d89f33a2cf3a2e69f1a0b13 |
|
BLAKE2b-256 | 6c7ae36a655e650c6e35819d660c95959fbf993c1fd8a10f7971f3d3eb393a22 |