跳转到主要内容

ThePay API库

项目描述

ThePay

用于从Python访问ThePay支付网关的库

https://github.com/nijel/thepay/workflows/Test/badge.svg PyPI package https://codecov.io/gh/nijel/thepay/branch/master/graph/badge.svg

示例

配置ThePay账户

from thepay.config import Config
config = Config()
config.setCredentials(12345, 12345, 'abcdefg12345', 'abcdefg12345')  # Credentials from ThePay account settings

列出可用的支付方式

from thepay.dataApi import DataApi
data_api = DataApi(config)
payments = data_api.getPaymentMethods()

以带有图像的单选按钮形式打印方式

<div>
    {% for payment in payments %}
     <div class="payment-method">
        <input type="radio" name="payment_method" value="{{ payment.id }}" id="payment_{{ payment.id }}">
        <label for="payment_{{ payment.id }}" title="{{ payment.name }}">
           <img src='http://www.thepay.cz/gate/images/logos/public/209x127/{{ payment.id }}.png' alt="{{ payment.name }}">
        </label>
     </div>
    {% endfor %}
</div>

将用户重定向到ThePay - 创建支付

from thepay.payment import Payment

payment = Payment(config)

payment.setValue(321)
payment.setMethodId(13) # ID of payment method from above
payment.setCustomerEmail('test@test.te')
payment.setDescription('Order 123 payment')
payment.setReturnUrl('https://example.com/payment')  # where to redirect user after payment
payment.setMerchantData(123)  # Any custom data - not visible to user

payment.getCreateUrl()  # Redirect user to this URL to begin payment

检查进来的支付

此代码应在上述代码的returnUrl上运行

from thepay.payment import ReturnPayment

return_payment = ReturnPayment(config)
return_payment.parseData(self.request.GET)  # Pass all GET received data in form of dict()

if not return_payment.checkSignature():
    return False  # Invalid payment signature

return_payment.getMerchantData()  # -> 123, previously saved custom data
return_payment.getValue()  # -> 321
return_payment.getStatus()  # Order status, see next paragraph
订单状态
  • 2 = STATUS_OK

  • 3 = STATUS_CANCELED

  • 4 = STATUS_ERROR

  • 6 = STATUS_UNDERPAID

  • 7 = STATUS_WAITING

  • 9 = STATUS_CARD_DEPOSIT

获取支付信息

payment_id = return_payment.getPaymentId()
payment = data_api.getPayment(payment_id)  # returns object with all payment data

许可证

LGPL

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

nijel-thepay-0.5.tar.gz (9.6 kB 查看哈希值)

上传时间:

构建分布

nijel_thepay-0.5-py3-none-any.whl (11.6 kB 查看哈希值)

上传时间: Python 3

由以下支持