跳转到主要内容

扩展PloneFormGen以支持支付表单。

项目描述

简介

此包旨在通过使用由PloneFormGen生成的表单和适配器,尽可能容易地将发生在Plone之外的html支付表单集成。

目前已在以下环境中测试

  • Plone-4.3

  • Products.PloneFormGen-1.7.8

示例用例

  1. 在Plone站点上,在表单中输入一些价格金额。

  2. 确认金额并跳转到Plone之外的支付页面。

  3. 处理支付。

  4. 返回到Plone站点。

常规设置

快速安装此包后,您需要从“站点设置”>“支付配置”配置身份验证代码计算。

MAC代码

此代码由支付提供商提供。

字段

将逐行用于计算的输入字段名称。

分隔符

如果需要,输入字段值之间的分隔符。

大写

如果计算出的身份验证代码需要为大写,请勾选此选项。

您可以在本地将支付设置配置到表单文件夹。

测试过的HTML接口及其配置

Verkkomakust S1(芬兰)

MAC代码

6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ

字段

MERCHANT_ID

AMOUNT

ORDER_NUMBER

REFERENCE_NUMBER

ORDER_DESCRIPTION

CURRENCY

RETURN_ADDRESS

CANCEL_ADDRESS

PENDING_ADDRESS

NOTIFY_ADDRESS

TYPE

CULTURE

PRESELECTED_METHOD

MODE

VISIBLE_METHODS

GROUP

分隔符

| (竖线)

大写

选中

示例用例

  1. 创建支付流程开始的表单:FormFolder1

    编辑 >> 重写 >> 自定义成功操作

    traverse_to:string:formfolder2

    • formfolder2是确认发生的下一个表单。

  2. 添加名为 AMOUNT十进制字段

    • Plone会自动从标题设置id,但它是小写的。要设置大写id,您可能需要更改它,例如从内容选项卡。

    • 如果需要成功付款后发送电子邮件或显示结果,则在此处添加自定义脚本适配器,并在脚本体中描述类似内容:

      items = dict(
          AMOUNT=request.form["AMOUNT"],
          topic=request.form["topic"]
      )
      request.SESSION.set("collective.pfg.payment", items)
    • 这意味着金额和主题字段存储在会话中,成功付款后可以显示。

  3. 创建另一个表单:FormFolder2

    编辑 >> 覆盖 >> 自定义表单动作

    https://payment.verkkomaksut.fi/

    查看 >> 动作 >> 使订单号可识别

    如有必要,更改编号行为。

    在此处可以本地设置支付配置,这将覆盖全局配置。

  4. 使用字符串字段添加所有以下字段。

    MERCHANT_ID

    AMOUNT

    ORDER_NUMBER

    REFERENCE_NUMBER

    ORDER_DESCRIPTION

    CURRENCY

    RETURN_ADDRESS

    CANCEL_ADDRESS

    PENDING_ADDRESS

    NOTIFY_ADDRESS

    TYPE

    CULTURE

    PRESELECTED_METHOD

    MODE

    VISIBLE_METHODS

    GROUP

    AUTHCODE

  • 字段ID必须为大写。

  • 以下字段需要配置

    MERCHANT_ID
    编辑 >> 默认

    13466

    ORDER_NUMBER
    编辑 >> 覆盖 >> 默认表达式

    python:here.restrictedTraverse(‘number’())

    CURRENCY
    编辑 >> 默认

    EUR

    RETURN_ADDRESS
    编辑 >> 覆盖 >> 默认表达式

    string:${portal_url}/formfolder3/thank-you/@@payment-succeeded

    • 假设FormFolder3将创建在Plone根目录下。

    • 如果字段值不需要通过电子邮件发送或显示在成功付款后,可以在此处提供不同的地址,FormFolder3就不再必要。

    CANCEL_ADDRESS
    编辑 >> 覆盖 >> 默认表达式

    string:${portal_url}/formfolder1

    • 假设FormFolder1创建在Plone根目录下。

    NOTIFY_ADDRESS
    编辑 >> 覆盖 >> 默认表达式

    string:${portal_url}

    TYPE
    编辑 >> 默认

    S1

    CULTURE
    编辑 >> 默认

    fi_FI

    MODE
    编辑 >> 默认

    1

    AUTHCODE
    编辑 >> 覆盖 >> 默认表达式

    python:here.restrictedTraverse(‘auth-code’)

  1. 创建另一个表单:FormFolder3

如果需要成功付款后发送电子邮件并显示字段值,请执行以下操作:

我们将在FormFolder3下自动创建的感谢页面。

要显示字段值,您需要将FormFolder1中的原始字段添加或复制到本表单中。

  • 字段的类型必须与原始字段相同。

  • 例如,如果您想显示主题和金额,需要在FormFolder3下添加具有ID topic的字符串字段和具有ID AMOUNT的十进制数字字段。

变更日志

0.6 (2013-05-06)

  • 将测试包移动到extras_require中。[taito]

  • 在Plone-4.3上进行了测试。[taito]

0.5 (2013-01-06)

  • 在Plone-4.2.3和Products.PloneFormGen-1.7.6上进行了测试。[taito]

  • 将测试集成到Travis CI中。[taito]

0.4 (2012-11-14)

  • 在Plone-4.2.2和Products.PloneFormGen-1.7.4上进行了测试。[taito]

0.3.2 (2012-09-25)

  • 在metadata.xml中更新了版本。[taito]

0.3.1 (2012-09-24)

  • 修复了动作:make_order_number_aware。[taito]

0.3 (2012-09-17)

  • 在Plone-4.2.1上进行了测试。[taito]

0.2.0 (2011-04-16)

  • 为多个支付处理器添加了本地支付配置。

0.1.1 (2011-04-15)

  • 将大写检查修复为在支付配置页面上更新。

0.1.0 (2011-04-15)

  • 初始发布

安装

使用zc.buildout和plone.recipe.zope2instance配方来管理包

  • 将collective.pfg.payment添加到要安装的egg列表中,例如:

    [buildout]
    ...
    eggs =
        ...
        collective.pfg.payment
  • 重新运行buildout,例如使用

    $ ./bin/buildout

鸣谢

  • 芬兰自然保护协会(Suomen Luonnonsuojeluliitto),他们在其网站上使用此包:http://www.sll.fi

项目详情


下载文件

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

源分发

collective.pfg.payment-0.6.zip (58.0 kB 查看哈希值)

上传于

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面