用于乔索布支付网关的python客户端

pycsob的Python项目详细描述


https://circleci.com/gh/TwistoPayments/pycsob.svg?style=svghttps://badge.fury.io/py/pycsob.svg

安装:

pip install pycsob

运行测试:

python setup.py test

基本用法:

frompycsob.clientimportCsobClientc=CsobClient('MERCHANT_ID','https://iapi.iplatebnibrana.csob.cz/api/v1.6/','/path/to/your/private.key','/path/to/mips_iplatebnibrana.csob.cz.pub')

初始化付款。输出是由一些属性丰富的请求响应 例如payloadextensions

r=c.payment_init(14,1000000,'http://twisto.dev/','Tesovaci nakup',customer_id='a@a.aa',return_method='GET',pay_operation='payment')r.payload#[Out]# OrderedDict([('payId', 'b627c1e4e60fcBF'),#[Out]#              ('dttm', '20160615104254'),#[Out]#              ('resultCode', 0),#[Out]#              ('resultMessage', 'OK'),#[Out]#              ('paymentStatus', 1)])

付款后init get url重定向到上一步获得的payid。

c.get_payment_process_url('b627c1e4e60fcBF')#[Out]# 'https://iapi.iplatebnibrana.csob.cz/api/v1.6/payment/process/MERCHANT_ID/b627c1e4e60fcBF/20160615104318/bla-bla-bla'

用户处理完付款后,浏览器会将其重定向到payment_init()中提供的url。 您可以检查付款状态。

c.payment_status('b627c1e4e60fcBF').payload#[Out]# OrderedDict([('payId', 'b627c1e4e60fcBF'),#[Out]#              ('dttm', '20160615104501'),#[Out]#              ('resultCode', 0),#[Out]#              ('resultMessage', 'OK'),#[Out]#              ('paymentStatus', 7),#[Out]#              ('authCode', '042760')])

您也可以使用一键付款方式。为了这个你需要 调用c.payment_init(pay_operation='oneclickPayment')。交易确认后 您可以使用获得的payId作为单击付款的模板。

r=c.oneclick_init('1e058ff1d0d5aBF',666,10000)r.payload#[Out]# OrderedDict([('payId', 'ff7d3e7c6c4fdBF'),#[Out]#              ('dttm', '20160615104532'),#[Out]#              ('resultCode', 0),#[Out]#              ('resultMessage', 'OK'),#[Out]#              ('paymentStatus', 1)])r=c.oneclick_start('ff7d3e7c6c4fdBF')r.payload#[Out]# OrderedDict([('payId', 'ff7d3e7c6c4fdBF'),#[Out]#              ('dttm', '20160615104619'),#[Out]#              ('resultCode', 0),#[Out]#              ('resultMessage', 'OK'),#[Out]#              ('paymentStatus', 2)])r=c.payment_status('ff7d3e7c6c4fdBF')r.payload#[Out]# OrderedDict([('payId', 'ff7d3e7c6c4fdBF'),#[Out]#              ('dttm', '20160615104643'),#[Out]#              ('resultCode', 0),#[Out]#              ('resultMessage', 'OK'),#[Out]#              ('paymentStatus', 7),#[Out]#              ('authCode', '168164')])

当然,您可以在response对象上使用标准请求的方法。

r.json()#[Out]# {'authCode': '047256',#[Out]#  'dttm': '20160615104717',#[Out]#  'payId': '1e058ff1d0d5aBF',#[Out]#  'paymentStatus': 7,#[Out]#  'resultCode': 0,#[Out]#  'resultMessage': 'OK',#[Out]#  'signature': 'foh4asfoxy40QRmwChJQwNkfT+PBmI3a7jQ+g2M75RpE2uJNqWCCmrhF8TPhcJ6rcyKSttB/ZZrd0gh9BQDgByMtyPG/rv0Jn3kQeuAryJfOW4nuFj86tr/queHD8ZZ248PwOkT5Zo2uTz+QRCrv/n4he+TWkFoVsm94AoSTK3O1SBDyLiOi3njv/ZWm+z/Z9iK55xBwuSs0v5lzxNJ9vJpjIwWlAB1qEkrWZuGZHrNtAib9NxytO0ruWyG3U4H+B8ioJOUlWrAbCHhmKvmArmYi23fup2486v/9s5SCl0fS7PQUNdiDJpZHxnRkVZZXwZM2sPyacgayvYb+khlBRg=='}r=c.payment_status('1e058ff1d0d5aBF')r.request.url#[Out]#  'https://iapi.iplatebnibrana.csob.cz/api/v1.6/payment/status/M1E3CB2577/1e058ff1d0d5aBF/20160615111034/HQKDHz7DTHL0lCn6OrAv%2BKQjGEr8KtdF42czAGCngCG0gWbuYTfJfO%2B5rHwAEWCl1XKiClYngLBI7Lu2mCJG8AP2Od7%2BAa5VXWcIjs0mSAsP60irR7M4Xl1NsXPe4bEhXAvAJU4yz3oV2vZ68QRB9vE7mk6OaLQade48yEFmX83FJPDQ4RSBOUqD3JPrKMMZ%2BkNEz0%2FMh94X7Zx3DrtwUVdKEyuX8Zf2MYwqzQh7mNBW6EZKxt7yKwS%2B0108GalXoD1n7ctjbtcyrbFAFKKLDgPNf%2BMlLBt8cwSSQ6J2xigI3P9T32L5YUg25kKr%2B4Dy%2FnwOKDntDszbGXQZdIBnTQ%3D%3D'r.status_code#[Out]# 200

请查看其他可用方法的代码及其用法。

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

推荐PyPI第三方库


热门话题
IE中的java跨域cookie问题   重复java中已经满足的循环   编译java RMI服务器时出错   JavaServlet POST中作为参数传递的javascript大型JSON数组数据为空   java片段未每次刷新/调用   java无法编译。错误消息   java如何构造大型类?   java Hibernate:TableThingsDB。事情并不存在   java如何操作从匹配项创建的数组。发现   循环以搜索和显示数组Java的某些部分   加载或注册SQLite JDBC驱动程序时出现java问题   活动和服务之间的java连接   JavaGWTG2D:ie8中的drawImage   java在安卓中设置hessian阈值   在Tomcat中使用Logback时发生java错误