{ "info": { "author": "Taito Horiuchi", "author_email": "taito.horiuchi@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2.7" ], "description": "Introduction\n============\nThis package is inteded to integrate html payment form which happens outside of Plone\nas easy as possible by using forms and adapters generated by PloneFormGen.\n\nCurrently tested with\n---------------------\n\n* Plone-4.3\n* Products.PloneFormGen-1.7.8\n\nExample use case\n--------------------\n\n1. On Plone site, input some price amount on form.\n\n2. Confirm the amount and go to payment page outside of Plone.\n\n3. Process the payment.\n\n4. Go back to Plone site.\n\nGeneral Setup\n-------------\n\nOnce the package is quickinstalled, you need to configure authentication code calculation from *Site Setup* >> *Payment Config*\n\n**MAC Code**\n This code is provided by payment provider.\n\n**Fields**\n Input field names which will be used for the calculation line by line.\n\n**Separator**\n Input separator between field values if necessary.\n\n**Capital**\n Check this if calculated authentication code need to be upper cases.\n\n*You may configure payment settings locally to Form Folders.*\n\nTested HTML Interfaces and their configurations\n===============================================\n\nVerkkomakust S1 (Finland)\n-------------------------\n\n**MAC Code**\n 6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ\n\n**Fields**\n\n MERCHANT_ID\n\n AMOUNT\n\n ORDER_NUMBER\n\n REFERENCE_NUMBER\n\n ORDER_DESCRIPTION\n\n CURRENCY\n\n RETURN_ADDRESS\n\n CANCEL_ADDRESS\n\n PENDING_ADDRESS\n\n NOTIFY_ADDRESS\n\n TYPE\n\n CULTURE\n\n PRESELECTED_METHOD\n\n MODE\n\n VISIBLE_METHODS\n\n GROUP\n\n**Separator**\n \\| (Vertical bar)\n\n**Capital**\n Checked\n\nExample use case\n----------------\n\n1. Create Form where payment process starts: FormFolder1\n\n *Edit* >> *Overrides* >> *Custom Success Action*\n\n traverse_to:string:formfolder2\n\n * formfolder2 is the next form where the confirmation happens.\n\n2. Add *Decimal Field* with id named **AMOUNT**.\n\n * Plone automatically set id from title, but with lower cases. To set id upper cases, you may need to change it, for example from Contents tab.\n\n * Optionally if you want to send email or show results after the successful payment, add Custom Script Adapter here and describe to script body something like::\n\n items = dict(\n AMOUNT=request.form[\"AMOUNT\"],\n topic=request.form[\"topic\"]\n )\n request.SESSION.set(\"collective.pfg.payment\", items)\n\n * This means that AMOUNT and topic fields are stored in session and can be displayed after the successful payment.\n\n3. Create another Form: FormFolder2\n\n *Edit* >> *Overrides* >> *Custom Form Action*\n\n https://payment.verkkomaksut.fi/\n\n *View* >> *Actions* >> *Make Order Number Aware*\n\n Change the numbering behavior if necessary.\n\n *Here you may set the payment configuration locally. This will overrides global configuration.*\n\n4. Add all of the next fields with *String Field*.\n\n MERCHANT_ID\n\n AMOUNT\n\n ORDER_NUMBER\n\n REFERENCE_NUMBER\n\n ORDER_DESCRIPTION\n\n CURRENCY\n\n RETURN_ADDRESS\n\n CANCEL_ADDRESS\n\n PENDING_ADDRESS\n\n NOTIFY_ADDRESS\n\n TYPE\n\n CULTURE\n\n PRESELECTED_METHOD\n\n MODE\n\n VISIBLE_METHODS\n\n GROUP\n\n AUTHCODE\n\n* The field ids must be upper cases.\n\n* These fields below needs to be configured\n\n **MERCHANT_ID**\n *Edit* >> *Default*\n 13466\n\n **ORDER_NUMBER**\n *Edit* >> *Overrides* >> *Default Expression*\n python:here.restrictedTraverse('number')()\n\n **CURRENCY**\n *Edit* >> *Default*\n EUR\n\n **RETURN_ADDRESS**\n *Edit* >> *Overrides* >> *Default Expression*\n string:${portal_url}/formfolder3/thank-you/@@payment-succeeded\n\n * Assuming that FormFolder3 will be created under plone root.\n * If field values are not necessary to be sent by e-mail or displayed after successful payment, you can give different address here and FormFolder3 is not necessary.\n\n **CANCEL_ADDRESS**\n *Edit* >> *Overrides* >> *Default Expression*\n string:${portal_url}/formfolder1\n\n * Assuming that FormFolder1 is created under plone root.\n\n **NOTIFY_ADDRESS**\n *Edit* >> *Overrides* >> *Default Expression*\n string:${portal_url}\n\n **TYPE**\n *Edit* >> *Default*\n S1\n\n **CULTURE**\n *Edit* >> *Default*\n fi_FI\n\n **MODE**\n *Edit* >> *Default*\n 1\n\n **AUTHCODE**\n *Edit* >> *Overrides* >> *Default Expression*\n python:here.restrictedTraverse('auth-code')\n\n5. Create another Form: FormFolder3\n\nIn case e-mails need to be sent and field values displayed after the successful payment.\n\nWe use thank-you page automatically created under FormFolder3.\n\n To show the field values, you need to add or copy the original field which were in FormFolder1 to this FormFolder.\n\n * The type of field need to be the same as the original one.\n * For example, if you want to show topic and AMOUNT, String Field with id topic and Decimal Number Field with id AMOUNT need to be added under FormFolder3.\n\nChangelog\n=========\n\n\n0.6 (2013-05-06)\n----------------\n\n- Moved test packages to extras_require. [taito]\n- Tested with Plone-4.3. [taito]\n\n0.5 (2013-01-06)\n----------------\n\n- Tested with Plone-4.2.3 and Products.PloneFormGen-1.7.6. [taito]\n- Added testing integration to Travis CI. [taito]\n\n0.4 (2012-11-14)\n----------------\n\n- Tested with Plone-4.2.2 and Products.PloneFormGen-1.7.4. [taito]\n\n0.3.2 (2012-09-25)\n------------------\n\n- Updated version in metadata.xml. [taito]\n\n0.3.1 (2012-09-24)\n------------------\n\n- Fixed action: make_order_number_aware. [taito]\n\n0.3 (2012-09-17)\n----------------\n\n- Tested with Plone-4.2.1. [taito]\n\n0.2.0 (2011-04-16)\n------------------\n\n- Added local payment configuration for multiple payment processors.\n\n0.1.1 (2011-04-15)\n------------------\n\n- Capital check fixed to be updated in Payment Config page.\n\n\n0.1.0 (2011-04-15)\n------------------\n\n- Initial release\n\nInstallation\n============\n\nUse zc.buildout and the plone.recipe.zope2instance\nrecipe to manage packages:\n\n* Add ``collective.pfg.payment`` to the list of eggs to install, e.g.::\n\n [buildout]\n ...\n eggs =\n ...\n collective.pfg.payment\n\n* Re-run buildout, e.g. with::\n\n $ ./bin/buildout\n\nCredits\n=========\n* Finnish Association for Nature Conservation (Suomen Luonnonsuojeluliitto) who uses this package in their site: http://www.sll.fi", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/taito/collective.pfg.payment", "keywords": "", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "collective.pfg.payment", "package_url": "https://pypi.org/project/collective.pfg.payment/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.pfg.payment/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/taito/collective.pfg.payment" }, "release_url": "https://pypi.org/project/collective.pfg.payment/0.6/", "requires_dist": null, "requires_python": null, "summary": "Extends PloneFormGen to payment form.", "version": "0.6" }, "last_serial": 787999, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8ab644737c637b1d05ac315272c6b4b2", "sha256": "fde0441ac4e0cb6a21aeb084c75054db7543cfa19aa86b3555225ddd691c109f" }, "downloads": -1, "filename": "collective.pfg.payment-0.1.0.zip", "has_sig": false, "md5_digest": "8ab644737c637b1d05ac315272c6b4b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54464, "upload_time": "2011-04-15T06:58:40", "url": "https://files.pythonhosted.org/packages/7a/f6/f8f6996a997066eed2149cfd059d0154cbcd852c78de0b9282bac7030b09/collective.pfg.payment-0.1.0.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "545a98057ff065ba079404a13a396461", "sha256": "e55e1792caf261a453393ba6b587346ed2e76e55c3367a0fd7d10be28f609a5c" }, "downloads": -1, "filename": "collective.pfg.payment-0.1.1.zip", "has_sig": false, "md5_digest": "545a98057ff065ba079404a13a396461", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54910, "upload_time": "2011-04-15T20:20:31", "url": "https://files.pythonhosted.org/packages/82/a8/a385bbe3addc41e8a17f0e6ca7448277805afe6f4b686d72a5ea2cdb67b9/collective.pfg.payment-0.1.1.zip" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ef64ae1e8c4c778b7c509eb2402871ca", "sha256": "edf963d705df937ef2ada05f454c3af0b9550cc608a8e505e7ffbc77f01f7adc" }, "downloads": -1, "filename": "collective.pfg.payment-0.2.0.zip", "has_sig": false, "md5_digest": "ef64ae1e8c4c778b7c509eb2402871ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56906, "upload_time": "2011-04-16T22:00:24", "url": "https://files.pythonhosted.org/packages/eb/8f/91bb643edd130b051e03c22d29fc6abdc95a26262d28e49bfe6eb8960172/collective.pfg.payment-0.2.0.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "1d04a8a5bab77a9c31556ff1a43854d1", "sha256": "d2555d1a1c063cd4ea7b8123b3e3de7037d8ebdfa3df2952609f95f32ec9695c" }, "downloads": -1, "filename": "collective.pfg.payment-0.3.zip", "has_sig": false, "md5_digest": "1d04a8a5bab77a9c31556ff1a43854d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56434, "upload_time": "2012-09-17T18:35:39", "url": "https://files.pythonhosted.org/packages/3a/3e/8815653b9e10b361d1fa90e8e9e69ea5fe78737dd200d76edd5797553c77/collective.pfg.payment-0.3.zip" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b0d0c91495430b43e3743aecf8ee1dab", "sha256": "ad22a2983dabc4b25d356be4066d7f86ad5d9abd1cfe70f954817564717d7b1c" }, "downloads": -1, "filename": "collective.pfg.payment-0.3.1.zip", "has_sig": false, "md5_digest": "b0d0c91495430b43e3743aecf8ee1dab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57987, "upload_time": "2012-09-24T20:58:54", "url": "https://files.pythonhosted.org/packages/22/74/51c8271e2199dfccec5742e04024575d5e7d73e7387ba8a0ec35df0f8e1f/collective.pfg.payment-0.3.1.zip" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "5a4138c4c999494ad95999d79d27173b", "sha256": "1f7813e03e370a3e2acfcc3cedf1ce11343a5f71c0eeda9beab8aa5614db0eb0" }, "downloads": -1, "filename": "collective.pfg.payment-0.3.2.zip", "has_sig": false, "md5_digest": "5a4138c4c999494ad95999d79d27173b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58065, "upload_time": "2012-09-24T22:33:55", "url": "https://files.pythonhosted.org/packages/3f/2c/d0169bc0b9e18d7079113c26d18d88ce0d5ee587bda7471afb0650f935a0/collective.pfg.payment-0.3.2.zip" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "42d93e1550eae23df6588bb77ab0273d", "sha256": "65c09df2a5fad951fa3e11e82e75f392db7a5dfc3026378ac2663ccf76dd469a" }, "downloads": -1, "filename": "collective.pfg.payment-0.4.zip", "has_sig": false, "md5_digest": "42d93e1550eae23df6588bb77ab0273d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56672, "upload_time": "2012-11-14T20:17:52", "url": "https://files.pythonhosted.org/packages/d3/b1/cbca54393ee6221075b3f9cbc32c90bc3df110fcd0828b2cb7988e5a9180/collective.pfg.payment-0.4.zip" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "2c4fa5ded9f2405bcbb13c1c479a32bc", "sha256": "7bc0d7db8c2d88a031b5b813d14fe4463719ca082578688cdcf090d030585319" }, "downloads": -1, "filename": "collective.pfg.payment-0.5.zip", "has_sig": false, "md5_digest": "2c4fa5ded9f2405bcbb13c1c479a32bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57804, "upload_time": "2013-01-06T12:38:31", "url": "https://files.pythonhosted.org/packages/cc/49/ab3bedbf98df8f378d469afddb70dc2a7c6c15da87bd1b37b573bc96d099/collective.pfg.payment-0.5.zip" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "e357e6c14784659c3d8b8be6c6a5cfb9", "sha256": "ec87cefd1091c76e30b88d68d633889367b58f9a529d47464d207180a6b00933" }, "downloads": -1, "filename": "collective.pfg.payment-0.6.zip", "has_sig": false, "md5_digest": "e357e6c14784659c3d8b8be6c6a5cfb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57970, "upload_time": "2013-05-06T17:37:49", "url": "https://files.pythonhosted.org/packages/bd/e5/2429b48f09737e261224f57105ac9fef9279d71f6532c1638d9dc6cd45be/collective.pfg.payment-0.6.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e357e6c14784659c3d8b8be6c6a5cfb9", "sha256": "ec87cefd1091c76e30b88d68d633889367b58f9a529d47464d207180a6b00933" }, "downloads": -1, "filename": "collective.pfg.payment-0.6.zip", "has_sig": false, "md5_digest": "e357e6c14784659c3d8b8be6c6a5cfb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57970, "upload_time": "2013-05-06T17:37:49", "url": "https://files.pythonhosted.org/packages/bd/e5/2429b48f09737e261224f57105ac9fef9279d71f6532c1638d9dc6cd45be/collective.pfg.payment-0.6.zip" } ] }