扩展PloneFormGen以支持支付表单。
项目描述
简介
此包旨在通过使用由PloneFormGen生成的表单和适配器,尽可能容易地将发生在Plone之外的html支付表单集成。
目前已在以下环境中测试
Plone-4.3
Products.PloneFormGen-1.7.8
示例用例
在Plone站点上,在表单中输入一些价格金额。
确认金额并跳转到Plone之外的支付页面。
处理支付。
返回到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
- 分隔符
| (竖线)
- 大写
选中
示例用例
创建支付流程开始的表单:FormFolder1
编辑 >> 重写 >> 自定义成功操作
traverse_to:string:formfolder2
formfolder2是确认发生的下一个表单。
添加名为 AMOUNT 的 十进制字段。
Plone会自动从标题设置id,但它是小写的。要设置大写id,您可能需要更改它,例如从内容选项卡。
如果需要成功付款后发送电子邮件或显示结果,则在此处添加自定义脚本适配器,并在脚本体中描述类似内容:
items = dict( AMOUNT=request.form["AMOUNT"], topic=request.form["topic"] ) request.SESSION.set("collective.pfg.payment", items)
这意味着金额和主题字段存储在会话中,成功付款后可以显示。
创建另一个表单:FormFolder2
编辑 >> 覆盖 >> 自定义表单动作
查看 >> 动作 >> 使订单号可识别
如有必要,更改编号行为。
在此处可以本地设置支付配置,这将覆盖全局配置。
使用字符串字段添加所有以下字段。
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’)
创建另一个表单: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