Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Leo Le Bouter
erp5
Commits
d820f635
Commit
d820f635
authored
Oct 04, 2011
by
Sebastien Robin
Committed by
Łukasz Nowak
Oct 04, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ERP5 Secure Payment tool implementation.
It allows to provide various secure payment services into ERP5.
parent
471171f1
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
1435 additions
and
0 deletions
+1435
-0
bt5/erp5_secure_payment/ActionTemplateItem/portal_types/Link/change_function.xml
.../ActionTemplateItem/portal_types/Link/change_function.xml
+85
-0
bt5/erp5_secure_payment/ActionTemplateItem/portal_types/Secure%20Payment%20Tool/view.xml
...emplateItem/portal_types/Secure%20Payment%20Tool/view.xml
+85
-0
bt5/erp5_secure_payment/PortalTypeTemplateItem/portal_types/Secure%20Payment%20Tool.xml
...TypeTemplateItem/portal_types/Secure%20Payment%20Tool.xml
+121
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment.xml
...ent/SkinTemplateItem/portal_skins/erp5_secure_payment.xml
+26
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/Base_generateSessionID.xml
...rtal_skins/erp5_secure_payment/Base_generateSessionID.xml
+76
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/Base_getWebSiteSecureUrl.xml
...al_skins/erp5_secure_payment/Base_getWebSiteSecureUrl.xml
+70
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/Link_getIdTranslationDict.xml
...l_skins/erp5_secure_payment/Link_getIdTranslationDict.xml
+74
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_createPaymentDocument.xml
...ecure_payment/SecurePaymentTool_createPaymentDocument.xml
+69
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_getPaymentDocument.xml
...5_secure_payment/SecurePaymentTool_getPaymentDocument.xml
+104
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_initializePaymentService.xml
...re_payment/SecurePaymentTool_initializePaymentService.xml
+67
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_startPayment.xml
...ns/erp5_secure_payment/SecurePaymentTool_startPayment.xml
+67
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_viewPaymentServiceList.xml
...cure_payment/SecurePaymentTool_viewPaymentServiceList.xml
+152
-0
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_viewPaymentServiceList/listbox.xml
...ment/SecurePaymentTool_viewPaymentServiceList/listbox.xml
+111
-0
bt5/erp5_secure_payment/bt/copyright_list
bt5/erp5_secure_payment/bt/copyright_list
+1
-0
bt5/erp5_secure_payment/bt/description
bt5/erp5_secure_payment/bt/description
+1
-0
bt5/erp5_secure_payment/bt/license
bt5/erp5_secure_payment/bt/license
+1
-0
bt5/erp5_secure_payment/bt/revision
bt5/erp5_secure_payment/bt/revision
+1
-0
bt5/erp5_secure_payment/bt/template_action_path_list
bt5/erp5_secure_payment/bt/template_action_path_list
+2
-0
bt5/erp5_secure_payment/bt/template_format_version
bt5/erp5_secure_payment/bt/template_format_version
+1
-0
bt5/erp5_secure_payment/bt/template_portal_type_id_list
bt5/erp5_secure_payment/bt/template_portal_type_id_list
+1
-0
bt5/erp5_secure_payment/bt/template_skin_id_list
bt5/erp5_secure_payment/bt/template_skin_id_list
+1
-0
bt5/erp5_secure_payment/bt/title
bt5/erp5_secure_payment/bt/title
+1
-0
bt5/erp5_secure_payment/bt/version
bt5/erp5_secure_payment/bt/version
+1
-0
product/ERP5SecurePayment/Document/__init__.py
product/ERP5SecurePayment/Document/__init__.py
+0
-0
product/ERP5SecurePayment/PropertySheet/PaymentService.py
product/ERP5SecurePayment/PropertySheet/PaymentService.py
+55
-0
product/ERP5SecurePayment/PropertySheet/__init__.py
product/ERP5SecurePayment/PropertySheet/__init__.py
+0
-0
product/ERP5SecurePayment/Tool/SecurePaymentTool.py
product/ERP5SecurePayment/Tool/SecurePaymentTool.py
+111
-0
product/ERP5SecurePayment/Tool/__init__.py
product/ERP5SecurePayment/Tool/__init__.py
+0
-0
product/ERP5SecurePayment/__init__.py
product/ERP5SecurePayment/__init__.py
+59
-0
product/ERP5SecurePayment/config.py
product/ERP5SecurePayment/config.py
+14
-0
product/ERP5SecurePayment/dtml/explainPaymentTool.dtml
product/ERP5SecurePayment/dtml/explainPaymentTool.dtml
+14
-0
product/ERP5SecurePayment/interfaces/payment_service.py
product/ERP5SecurePayment/interfaces/payment_service.py
+63
-0
product/ERP5SecurePayment/refresh.txt
product/ERP5SecurePayment/refresh.txt
+0
-0
product/ERP5SecurePayment/tool.png
product/ERP5SecurePayment/tool.png
+0
-0
product/ERP5SecurePayment/version.txt
product/ERP5SecurePayment/version.txt
+1
-0
No files found.
bt5/erp5_secure_payment/ActionTemplateItem/portal_types/Link/change_function.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ActionInformation"
module=
"Products.CMFCore.ActionInformation"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
action_type/object_action
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
category
</string>
</key>
<value>
<string>
object_action
</string>
</value>
</item>
<item>
<key>
<string>
condition
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
icon
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
change_function
</string>
</value>
</item>
<item>
<key>
<string>
permissions
</string>
</key>
<value>
<tuple>
<string>
Modify portal content
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Action Information
</string>
</value>
</item>
<item>
<key>
<string>
priority
</string>
</key>
<value>
<float>
2.0
</float>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Change Function
</string>
</value>
</item>
<item>
<key>
<string>
visible
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"Expression"
module=
"Products.CMFCore.Expression"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
text
</string>
</key>
<value>
<string>
string:${object_url}/Base_viewChangeIdDialog
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/ActionTemplateItem/portal_types/Secure%20Payment%20Tool/view.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ActionInformation"
module=
"Products.CMFCore.ActionInformation"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
action_type/object_view
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
category
</string>
</key>
<value>
<string>
object_view
</string>
</value>
</item>
<item>
<key>
<string>
condition
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
icon
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
view
</string>
</value>
</item>
<item>
<key>
<string>
permissions
</string>
</key>
<value>
<tuple>
<string>
View
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Action Information
</string>
</value>
</item>
<item>
<key>
<string>
priority
</string>
</key>
<value>
<float>
10.0
</float>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
View
</string>
</value>
</item>
<item>
<key>
<string>
visible
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"Expression"
module=
"Products.CMFCore.Expression"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
text
</string>
</key>
<value>
<string>
string:${object_url}/SecurePaymentTool_viewPaymentServiceList
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/PortalTypeTemplateItem/portal_types/Secure%20Payment%20Tool.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Base Type"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_property_domain_dict
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
short_title
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
content_icon
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
group_list
</string>
</key>
<value>
<tuple>
<string>
module
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Secure Payment Tool
</string>
</value>
</item>
<item>
<key>
<string>
init_script
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
permission
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Base Type
</string>
</value>
</item>
<item>
<key>
<string>
type_class
</string>
</key>
<value>
<string>
Folder
</string>
</value>
</item>
<item>
<key>
<string>
type_interface
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
type_mixin
</string>
</key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"TranslationInformation"
module=
"Products.ERP5Type.TranslationProviderBase"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
domain_name
</string>
</key>
<value>
<string>
erp5_content
</string>
</value>
</item>
<item>
<key>
<string>
property_name
</string>
</key>
<value>
<string>
short_title
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"TranslationInformation"
module=
"Products.ERP5Type.TranslationProviderBase"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
domain_name
</string>
</key>
<value>
<string>
erp5_content
</string>
</value>
</item>
<item>
<key>
<string>
property_name
</string>
</key>
<value>
<string>
title
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Folder"
module=
"OFS.Folder"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_objects
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
erp5_secure_payment
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/Base_generateSessionID.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
"""\n
Generate random id which is generally used as a session ID.\n
"""\n
from random import choice\n
import string\n
return \'\'.join([choice(string.letters) for i in range(max_long)])\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
max_long = 10
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Base_generateSessionID
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Generate session ID
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/Base_getWebSiteSecureUrl.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
"""Return the secure url of current web site based on layout configuration"""\n
\n
website = context.getWebSiteValue()\n
return website.getLayoutProperty(\'layout_secure_url\', website.getAbsoluteUrl())\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Base_getWebSiteSecureUrl
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/Link_getIdTranslationDict.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
"""Get translation id dict based on parent portal type"""\n
parent_portal_type = context.getParentValue().getPortalType().replace(\' \',\'\')\n
method = getattr(context, "%s_getLinkIdTranslationDict" % parent_portal_type, None)\n
\n
if not method:\n
return {}\n
\n
return method()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Link_getIdTranslationDict
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_createPaymentDocument.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
module = context.getDefaultModule("Payment Transaction")\n
payment_document = module.newContent(portal_type="Payment Transaction")\n
return payment_document\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
**kw
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
SecurePaymentTool_createPaymentDocument
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_getPaymentDocument.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
"""Central place to get document used to do the payment.\n
By default, use payment transaction. You can change this by override this script"""\n
\n
return context.getPortalObject()\\\n
.SecurePaymentTool_createPaymentDocument(**kw)\n
\n
# XXX DO WE NEED ANY COOKIE ?\n
# I (Seb) removed it, I don\'t understand why this is needed. Also\n
# because of this cookie, if there is any issue with the payment,\n
# it is totally impossible to do another payment without resetting cookies !\n
# most users don\'t even know that cookies exists, so this is really bad.\n
\n
#request = context.REQUEST\n
#expire_timeout_days = 90\n
#session_id = request.get(\'session_id\', None)\n
#portal_sessions = context.portal_sessions\n
\n
#if session_id is None:\n
### first call so generate session_id and send back via cookie\n
#now = DateTime()\n
#session_id = context.Base_generateSessionID(max_long=20)\n
#request.RESPONSE.setCookie(\'session_id\', session_id, expires=(now +expire_timeout_days).fCommon(), path=\'/\')\n
\n
#if action==\'reset\':\n
### reset cart \n
#portal_sessions.manage_delObjects(session_id)\n
#else:\n
### take payment transaction for this customer\n
#session = portal_sessions[session_id]\n
#payment_document_key = \'payment_document\'\n
#if not payment_document_key in session:\n
#payment_document = context.getPortalObject()\\\n
#.SecurePaymentTool_createPaymentDocument(**kw)\n
#session[payment_document_key] = payment_document.getRelativeUrl()\n
\n
### return just a part of session for payment transaction\n
#payment_document = context.restrictedTraverse(session[payment_document_key])\n
#return payment_document\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
action=\'\', **kw
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
SecurePaymentTool_getPaymentDocument
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_initializePaymentService.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
return context.portal_secure_payments.initialize(service=service_reference, REQUEST=context.REQUEST, **kw)\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
service_reference=\'default\', **kw
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
SecurePaymentTool_initializePaymentService
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_startPayment.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
return context.portal_secure_payments.navigate(service=service_reference, REQUEST=context.REQUEST, **kw)\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
service_reference=\'default\', **kw
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
SecurePaymentTool_startPayment
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_viewPaymentServiceList.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ERP5Form"
module=
"Products.ERP5Form.Form"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_objects
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
edit_order
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
encoding
</string>
</key>
<value>
<string>
UTF-8
</string>
</value>
</item>
<item>
<key>
<string>
enctype
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
group_list
</string>
</key>
<value>
<list>
<string>
left
</string>
<string>
right
</string>
<string>
center
</string>
<string>
bottom
</string>
<string>
hidden
</string>
</list>
</value>
</item>
<item>
<key>
<string>
groups
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
bottom
</string>
</key>
<value>
<list>
<string>
listbox
</string>
</list>
</value>
</item>
<item>
<key>
<string>
center
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
left
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
right
</string>
</key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
SecurePaymentTool_viewPaymentServiceList
</string>
</value>
</item>
<item>
<key>
<string>
method
</string>
</key>
<value>
<string>
POST
</string>
</value>
</item>
<item>
<key>
<string>
name
</string>
</key>
<value>
<string>
PaymentTool_viewPaymentServiceList
</string>
</value>
</item>
<item>
<key>
<string>
pt
</string>
</key>
<value>
<string>
form_list
</string>
</value>
</item>
<item>
<key>
<string>
row_length
</string>
</key>
<value>
<int>
4
</int>
</value>
</item>
<item>
<key>
<string>
stored_encoding
</string>
</key>
<value>
<string>
UTF-8
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
unicode_mode
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
update_action
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
update_action_title
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/SkinTemplateItem/portal_skins/erp5_secure_payment/SecurePaymentTool_viewPaymentServiceList/listbox.xml
0 → 100644
View file @
d820f635
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ProxyField"
module=
"Products.ERP5Form.ProxyField"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
delegated_list
</string>
</key>
<value>
<list>
<string>
columns
</string>
</list>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
listbox
</string>
</value>
</item>
<item>
<key>
<string>
message_values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
external_validator_failed
</string>
</key>
<value>
<string>
The input failed the external validator.
</string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
overrides
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
field_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
form_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
target
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
tales
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
field_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
form_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
target
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
columns
</string>
</key>
<value>
<list>
<tuple>
<string>
portal_type
</string>
<string>
Portal Type
</string>
</tuple>
<tuple>
<string>
title
</string>
<string>
Title
</string>
</tuple>
<tuple>
<string>
reference
</string>
<string>
Reference
</string>
</tuple>
</list>
</value>
</item>
<item>
<key>
<string>
field_id
</string>
</key>
<value>
<string>
my_list_mode_listbox
</string>
</value>
</item>
<item>
<key>
<string>
form_id
</string>
</key>
<value>
<string>
Base_viewFieldLibrary
</string>
</value>
</item>
<item>
<key>
<string>
target
</string>
</key>
<value>
<string>
Click to edit the target
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_secure_payment/bt/copyright_list
0 → 100644
View file @
d820f635
Nexedi SA 2010
\ No newline at end of file
bt5/erp5_secure_payment/bt/description
0 → 100644
View file @
d820f635
Base Business Template for payment in ERP5
\ No newline at end of file
bt5/erp5_secure_payment/bt/license
0 → 100644
View file @
d820f635
GPL
\ No newline at end of file
bt5/erp5_secure_payment/bt/revision
0 → 100644
View file @
d820f635
12
\ No newline at end of file
bt5/erp5_secure_payment/bt/template_action_path_list
0 → 100644
View file @
d820f635
Link | change_function
Secure Payment Tool | view
\ No newline at end of file
bt5/erp5_secure_payment/bt/template_format_version
0 → 100644
View file @
d820f635
1
\ No newline at end of file
bt5/erp5_secure_payment/bt/template_portal_type_id_list
0 → 100644
View file @
d820f635
Secure Payment Tool
\ No newline at end of file
bt5/erp5_secure_payment/bt/template_skin_id_list
0 → 100644
View file @
d820f635
erp5_secure_payment
\ No newline at end of file
bt5/erp5_secure_payment/bt/title
0 → 100644
View file @
d820f635
erp5_secure_payment
\ No newline at end of file
bt5/erp5_secure_payment/bt/version
0 → 100644
View file @
d820f635
5.4.7
\ No newline at end of file
product/ERP5SecurePayment/Document/__init__.py
0 → 100644
View file @
d820f635
product/ERP5SecurePayment/PropertySheet/PaymentService.py
0 → 100644
View file @
d820f635
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
# François-Xavier Algrain <fxalgrain@tiolive.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
class
PaymentService
:
"""
This property sheet defines payment service properties
"""
_properties
=
(
{
'id'
:
'service_username'
,
'description'
:
'Account username'
,
'type'
:
'string'
,
'mode'
:
'w'
},
{
'id'
:
'service_password'
,
'description'
:
'Account password'
,
'type'
:
'string'
,
'default'
:
''
,
'mode'
:
'w'
},
{
'id'
:
'link'
,
'storage_id'
:
'default_link'
,
'description'
:
'Link of the current payment service server'
,
'type'
:
'content'
,
'portal_type'
:
(
'Link'
,
),
'acquired_property_id'
:
(
'url_string'
,
),
'mode'
:
'w'
},
)
product/ERP5SecurePayment/PropertySheet/__init__.py
0 → 100644
View file @
d820f635
product/ERP5SecurePayment/Tool/SecurePaymentTool.py
0 → 100644
View file @
d820f635
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
# François-Xavier Algrain <fxalgrain@tiolive.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type.Tool.BaseTool
import
BaseTool
from
Products.ERP5Type.Permissions
import
ManagePortal
from
Globals
import
DTMLFile
from
Products.ERP5SecurePayment
import
_dtmldir
from
Products.ERP5Security.ERP5UserManager
import
SUPER_USER
from
AccessControl.SecurityManagement
import
newSecurityManager
from
AccessControl
import
getSecurityManager
from
zLOG
import
LOG
class
SecurePaymentTool
(
BaseTool
):
"""
This tool manages payment gateway like PayPal, PayBox ...
It is used as a central point of managment
"""
id
=
'portal_secure_payments'
meta_type
=
'ERP5 Secure Payment Tool'
portal_type
=
'Secure Payment Tool'
# Declarative Security
security
=
ClassSecurityInfo
()
security
.
declareProtected
(
ManagePortal
,
'manage_overview'
)
manage_overview
=
DTMLFile
(
'explainPaymentTool'
,
_dtmldir
)
def
find
(
self
,
service_reference
=
"default"
):
"""Search a payment service by reference"""
if
service_reference
:
result
=
self
.
searchFolder
(
reference
=
service_reference
)
if
len
(
result
)
>
0
:
return
result
[
0
].
getObject
().
__of__
(
self
)
raise
ValueError
,
"Impossible to find a payment service with '%s' reference"
%
service_reference
def
_loginAsSuperUser
(
self
):
user
=
getSecurityManager
().
getUser
()
if
not
(
'Member'
in
user
.
getRoles
()):
newSecurityManager
(
None
,
self
.
getPortalObject
().
acl_users
.
getUserById
(
SUPER_USER
))
def
_getParametersFromSelection
(
self
,
service
,
selection
):
if
selection
is
not
None
:
params
=
self
.
portal_selections
.
getSelectionParamsFor
(
selection
)
service
=
params
.
pop
(
'service'
,
service
)
self
.
portal_selections
.
manage_deleteSelection
(
selection
)
else
:
params
=
{}
return
service
,
params
def
initialize
(
self
,
service
=
"default"
,
REQUEST
=
None
,
**
kw
):
"""Initialize the transaction with a service"""
self
.
_loginAsSuperUser
()
return
self
.
find
(
service
).
initialize
(
REQUEST
,
**
kw
)
def
navigate
(
self
,
service
=
"default"
,
REQUEST
=
None
,
**
kw
):
"""Navigate to service payment page"""
return
self
.
find
(
service
).
navigate
(
REQUEST
,
**
kw
)
#Use selection to minimize fallback url length. In exemple, Paybox limit to
#150 chars.
def
notifySuccess
(
self
,
service
=
'default'
,
selection
=
None
,
REQUEST
=
None
):
"""Notify the user of successful transaction"""
service
,
params
=
self
.
_getParametersFromSelection
(
service
,
selection
)
return
self
.
find
(
service
).
notifySuccess
(
REQUEST
=
REQUEST
,
**
params
)
def
notifyFail
(
self
,
service
=
'default'
,
selection
=
None
,
REQUEST
=
None
):
"""Notify the user of failed transaction"""
service
,
params
=
self
.
_getParametersFromSelection
(
service
,
selection
)
return
self
.
find
(
service
).
notifyFail
(
REQUEST
=
REQUEST
,
**
params
)
def
notifyCancel
(
self
,
service
=
'default'
,
selection
=
None
,
REQUEST
=
None
):
"""Notify the user of cancelled transaction"""
service
,
params
=
self
.
_getParametersFromSelection
(
service
,
selection
)
return
self
.
find
(
service
).
notifyCancel
(
REQUEST
=
REQUEST
,
**
params
)
def
reportPaymentStatus
(
self
,
service
=
'default'
,
REQUEST
=
None
):
"""Notify the service of cancelled transaction"""
self
.
_loginAsSuperUser
()
return
self
.
find
(
service
).
reportPaymentStatus
(
REQUEST
=
REQUEST
)
product/ERP5SecurePayment/Tool/__init__.py
0 → 100644
View file @
d820f635
product/ERP5SecurePayment/__init__.py
0 → 100644
View file @
d820f635
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
# Francois-Xavier Algrain <fxalgrain@tiolive.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
"""
ERP5 Secure Payment is a product containing everything needed to do secure payment on ERP5
"""
# Update ERP5 Globals
from
Products.ERP5Type.Utils
import
initializeProduct
,
updateGlobals
import
sys
this_module
=
sys
.
modules
[
__name__
]
document_classes
=
updateGlobals
(
this_module
,
globals
())
from
Tool
import
SecurePaymentTool
# Define object classes and tools
object_classes
=
()
portal_tools
=
(
SecurePaymentTool
.
SecurePaymentTool
,
)
content_classes
=
()
content_constructors
=
()
# Finish installation
def
initialize
(
context
):
import
Document
initializeProduct
(
context
,
this_module
,
globals
(),
document_module
=
Document
,
document_classes
=
document_classes
,
object_classes
=
object_classes
,
portal_tools
=
portal_tools
,
content_constructors
=
content_constructors
,
content_classes
=
content_classes
)
product/ERP5SecurePayment/config.py
0 → 100644
View file @
d820f635
##############################################################################
#
# Copyright (c) 2006-2010 Nexedi SA and Contributors. All Rights Reserved.
# Ivan Tyagov <ivan@nexedi.com>
# Lukasz Nowak <luke@nexedi.com>
#
# Contains secret information.
#
##############################################################################
# The path of modulev2.cgi for Paybox.
PAYBOX_MODULEV2_CGI
=
'/var/lib/erp5/modulev2.cgi'
# The path of the public key for Paybox.
PAYBOX_PUBLIC_KEY
=
'/var/lib/erp5/paybox_pubkey.pem'
product/ERP5SecurePayment/dtml/explainPaymentTool.dtml
0 → 100644
View file @
d820f635
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<h3>Explain Payment Tool</h3>
<p>
Payment Tool goals are to provide a unique interface to buy/sell on ERP5 instances.
</p>
<p>
You need to have a Payement Gateway with reference egal to "default" to make payment.
Other reference can be used for specific purpose.
</p>
<dtml-var manage_page_footer>
product/ERP5SecurePayment/interfaces/payment_service.py
0 → 100644
View file @
d820f635
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
# François-Xavier Algrain <fxalgrain@tiolive.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
"""
Products.ERP5SecurePayment.interfaces.payment_service
"""
from
zope.interface
import
Interface
class
IPaymentService
(
Interface
):
"""Payment Service interface specification
IPaymentService defines the minimal method required to define a payment service
wich can be used by the payment tool
"""
def
initialize
(
self
,
REQUEST
=
None
,
**
kw
):
"""Initialize the service to be ready to start the transaction
"""
def
navigate
(
self
,
REQUEST
=
None
,
**
kw
):
"""Redirect User to the payment page.
"""
def
reportPaymentStatus
(
self
,
REQUEST
=
None
):
"""Server side notification of payment status"""
def
notifySuccess
(
self
,
REQUEST
=
None
,
**
kw
):
"""Fallback method when transaction is a success
"""
def
notifyFail
(
self
,
REQUEST
=
None
,
**
kw
):
"""Fallback method when transaction fails
"""
def
notifyCancel
(
self
,
REQUEST
=
None
,
**
kw
):
"""Fallback method when transaction is cancelled
"""
\ No newline at end of file
product/ERP5SecurePayment/refresh.txt
0 → 100644
View file @
d820f635
product/ERP5SecurePayment/tool.png
0 → 100644
View file @
d820f635
287 Bytes
product/ERP5SecurePayment/version.txt
0 → 100644
View file @
d820f635
0.1
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment