DJANO集成在DPS支付网关中的应用
django-dps的Python项目详细描述
Django的DPS付款处理。(几乎)完全不可知论 你的模特。默认情况下,您从不处理信用卡详细信息。把手 一次性和经常性付款。
用法:
您需要在settings.py:^{tt2}中添加一些项$ 以及PXPAY_KEY用于交互式付款和定期付款设置, 以及PXPOST_USERID和PXPOST_KEY用于非交互式和 定期账单。
你还需要include('dps.urls')在你的网址某处。
然后,调用此函数:
dps.transactions.make_payment(obj, request=None, attrs={})其中:
- obj实现dps.models.BasicTransactionProtocol或 dps.models.FullTransactionProtocol。
- request是django请求对象或None。
如果您打算进行交互式付款,例如通过重定向 用户转到dps页面,然后提供请求。(需要建造 dps重定向回的完全指定的url。)
如果request是None,函数将尝试查找并使用 存储的计费令牌(如 dps/models.py)并进行非交互式定期付款。
- attrs是pxpay或pxpost请求参数的字典 合并到对DPS的事务请求中。
这允许您做任何事情,真的,因为您可以覆盖默认值 参数,直接提供信用卡详细信息,指定退款 而不是购买任何dps支持的东西。
要在自己的模型上为其事务设置访问器/关系, 只需使用generirelation:
class MyModel(models.Model): ... transactions = generic.GenericRelation(Transaction)
还有一个dps.admin.TransactionInlineAdmin可以使用 拥有自己的模型管理员,如so:
class MyModelAdmin(admin.ModelAdmin): ... inlines = [TransactionInlineAdmin] admin.site.register(MyModel, MyModelAdmin)
运行测试
创建一个名为tests/dps_settings.py的文件并添加PXPAY_USERID和 PXPAY_KEY值-您需要有效的pxpay测试凭据。 然后,假设安装了virtualenvwrapper:
> cd path-to/django-dps > mkvirtualenv test > pip install requests > ./setup.py install > ./runtests.py
要在所有受支持的python和django版本中运行测试,请使用 tox:
> cd path-to/django-dps > mkvirtualenv test > pip install tox > tox