transbank网页协议的python实现。
tbk的Python项目详细描述
注意:测试版尚未准备好生产
transbank网页协议的python实现。
安装
pip install tbk
用法
为Commerce设置环境变量并初始化。
os.environ['TBK_COMMERCE_ID'] = "597026007976" os.environ['TBK_COMMERCE_KEY'] = "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAn3HzPC1ZBzCO3edUCf/XJiwj3bzJpjjTi/zBO9O+DDzZCaMp..."" from tbk.webpay.commerce import Commerce commerce = Commerce.create_commerce() # for development purposes you can use # commerce = Commerce(testing=True)
如果要设置官方网页日志(用于认证问题):
from tbk.webpay.logging import configure_logger from tbk.webpay.logging.official import WebpayOfficialHandler configure_logger(WebpayOfficialHandler(LOG_BASE_PATH))
创建新付款并重定向用户。
from tbk.webpay.payment import Payment payment = Payment( request_ip='123.123.123.123', commerce=commerce, success_url='http://localhost:8080/webpay/success/', confirmation_url='http://127.0.0.1:8080/webpay/confirmation/', failure_url='http://localhost:8080/webpay/failure/', session_id='SOME_SESSION_VALUE', amount=123456, order_id=1, ) payment.redirect_url
然后要确认付款,请使用带有以下内容的端点:
from tbk.webpay.confirmation import Confirmation def confirmation(request): conf = Confirmation( commerce=commerce, request_ip=request.ip_address, data=request.POST ) # validate_confirmation validate if order_id and amount are valid. if conf.is_success() and validate_confirmation(conf) and not conf.is_timeout(): return HttpResponse(commerce.acknowledge) return HttpResponse(commerce.reject)
关于网页通信协议:http://sagmor.com/rants/technical/webpay-communication-protocol/