跳转到主要内容

Mezzanine/Cartridge的Braintree支付处理

项目描述

Braintree Payments处理程序,适用于Mezzanine/Cartridge。支持Django 3.2或4.0,Mezzanine 5.1或更高版本,Cartridge 1.3或更高版本。

使用说明

  1. 安装cartridge_braintree

    pip install cartridge_braintree

    如果您需要正确排序非ASCII国家名称,请使用

    pip install cartridge_braintree[countries_utf8_sorting]

    这将添加‘pyuca’到需求中。

  2. 将‘cartridge_braintree’添加到您的INSTALLED_APPS列表中,并将其放在‘cartridge.shop’之上,否则cartridge_braintree模板将不会被选择。

  3. 在您的settings.pylocal_settings.py中设置以下设置

    BRAINTREE_MERCHANT_ID = <your merchant ID>
    BRAINTREE_PUBLIC_KEY = <your public key>
    BRAINTREE_PRIVATE_KEY = <your private key>

    请参阅https://developer.paypal.com/braintree/articles/control-panel/important-gateway-credentials

  4. cartridge_braintree使用修改后的结账表单,它执行以下操作

    • 将运货和账单国家字段更改为选择小部件。这确保所选国家可以转换为 Braintree 付款处理的有效代码。支持的国家可以在 settings.SHOP_SUPPORTED_COUNTRIES 中设置,这是一个 alpha2 国家代码列表以及/或形式为 (alpha2, 国家名称) 的元组。

      例如,如果您想选择欧盟地区的国家,请使用以下方法:

      SHOP_SUPPORTED_COUNTRIES = [
          'AL', 'AT', 'BA', 'BE', 'BG', 'CH', 'CY', 'DE', 'DK', 'EE', 'ES',
          'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IS', 'IT', 'LT', 'LV',
          'MK', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'SE', 'SI'
       ]

      可以使用 settings.SHOP_DEFAULT_COUNTRY 将选择字段中的预选国家指定为 alpha2 代码。默认情况下,用户预计会选择自己的国家(设置为 None)。

      settings.SHOP_PRIMARY_COUNTRIES 中列出的国家/国家(作为 alpha2 代码)将在设置 settings.SHOP_DEFAULT_COUNTRY 后显示在国家选择字段顶部。

    • 信用卡号和 CCV 字段使用 NoNameTextInput 小部件呈现,以便不将数据提交到服务器。JavaScript 处理这些字段以创建 payment_method_nonce,然后将其存储在隐藏表单元素中。

    • 使用来自 stripe 的 jquery.payment 进行客户端验证付款表单,并将错误提交到隐藏的 braintree_errors 字段以作为 Django 错误处理。

    请参阅 https://developer.paypal.com/braintree/docs/guides/transactions/python

  5. 将付款处理程序设置为 Braintree 付款处理程序

    SHOP_HANDLER_PAYMENT = 'cartridge_braintree.braintree_payment.payment_handler'

    如果您正在覆盖自己的应用程序中的模板,请确保包含相关的 braintreejs.html 模板。

  6. urls.py 中包含 cartridge_braintree.urls 以在 Cartridge urls 之前处理 shop/checkout

    urlpatterns += [
    
        # cartridge_braintree URLs.
        re_path(r"^shop/(?=checkout(/?)$)", include("cartridge_braintree.urls")),
    
        # Cartridge URLs.
        path("shop/", include("cartridge.shop.urls")),
        path("account/orders/", order_history, name="shop_order_history"),
  7. 如果您想使用 Braintree 的 PayPal 付款,请在其管理站点设置中激活它,并设置与 PayPal 一起使用的货币。

    或者您可以在 settings.py 中设置它们,形式如下:

    BRAINTREE_PAYPAL_ACTIVATE = True
    BRAINTREE_PAYPAL_CURRENCY = "EUR"

    在这种情况下,设置将不会显示在管理界面中。

  8. 如有需要,您可以在 Django 配置中添加日志记录以获得有关交易的更多详细信息

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'braintree_file': {
                'class': 'logging.FileHandler',
                'filename': '/path/to/django/braintree.log',
            },
        },
        'loggers': {
            'braintree_payment': {
                'handlers': ['braintree_file'],
                'level': 'DEBUG',
            },
        },
    }

    有关所有配置选项,请参阅 https://docs.django.ac.cn/en/4.0/topics/logging/#configuring-logging

    日志级别如下:
    • 客户端令牌创建:info

    • 交易开始:debug

    • 交易完成:debug

    • 交易失败:warning

    绝不应将机密信息输出到日志记录器。

项目详情


下载文件

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

源分布

cartridge_braintree-3.0.6.tar.gz (179.6 kB 查看哈希值)

上传时间 源代码

构建分布版

cartridge_braintree-3.0.6-py3-none-any.whl (264.0 kB 查看哈希值)

上传时间 Python 3

由以下支持