Hi there,
I need to add a custom Payment Acquirer called PayToday. They only exist in Namibia as we cannot use any international ones. The script was intended to just serve on HTML websites.
They only have a Java script which is executed by a PayToday button, passing parameters on CDATA.:
Code in HTML:
<!DOCTYPE html>
<html>
<head>
<title>TEST PAYTODAY SCRIPT</title>
</head>
<body>
<div id="paytodaybtn"></div>
<script type="text/javascript" src="\https\:\/\/paytoday\.com\.na\/js\/pay\-with\-paytoday\.js\"\"\>\;\<\;\/script\\>\;\\\\\ \\<\;script\ type\=\"text\/javascript\"\>\;\\\\\ \\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\\ \;\\\\\\ \\/\/\<\;\!\[CDATA\[\\\\\ \document\.addEventListener\(\'DOMContentLoaded\'\,\ function\(\)\ \{\\\\\ \createButton\(\'Business_ID\'\,\ \'My_Business_name\'\,\ \'Amount\'\,\ \'Thank_you_URL\'\,\ \'Reference_Number\'\)\;\ \}\)\;\ \/\/\]\]\>\;\\ \;\\\\\\ \\<\;\/script\>\;\\\\\ \\\ \;\\\\ \\<\;\/body\>\;\\\\\ \\<\;\/html\>\;\\\\\ \When\ the\ webpage\ opens\ I\ need\ to\ press\ the\ \"button\"\ as\ Below\,\\ \;\\\\\\ \\\ \;\\\\ \\\ \;\\\\ \\\ \;\\\\ \\\\\\\\\ \\ \;and\ it\ opens\ the\ page\ as\ below\:\\\\\ \\\ \;\\\\ \\\\with\ the\ required\ values\ passed\.\ Client\ can\ choose\ to\ pay\ via\ mobile\ number\ or\ CC\.\\\\\ \\\ \;\\\\ \On\ \"Continue\"\ it\ passed\ parameters\ back\ \"success\"\ or\ \"Failed\"\ again\ in\ Java\.\\\\\ \I\ have\ read\ most\ of\ the\ forums\/\ bloges\,\ looked\ all\ the\ payment\ acquirers\ in\ Odoo\,\ but\ I\ cannot\ seem\ to\ figure\ out\ how\ to\:\\\\\ \On\ odoo\ Pay\ Now\ \"Paytoday\"\,\ \;\ automatically\ calling\ the\ \"Pay\ with\ PayToday\ button\"\ and\ passing\ the\ parameters\ to\ create\ the\ Function\ so\ the\ Paytoday\ Payment\ screen\ pops\ up\ with\ the\ Values\.\ On\ \"submit\ payment\"\ on\ Paytoaday\,\ receive\ the\ values\ and\ continue\ normal\ checkout\ process\ in\ odoo\ with\ payment\ completed\.\ \(no\ tokens\,\ no\ authentications\.\ This\ as\ close\ as\ it\ comes\ to\ a\ API\)\\\\\ \I\ have\ created\ a\ custom\ module\ payment_paytoday\:\\\\\ \payment_acquirer_data\.xml\:\\\\\ \\<\;\?\\xml\ version\\\=\"1\.0\"\\ \;\\\encoding\\\=\"utf\-8\"\\\?\>\;\ \Python\ payment\.py\\\\\ \\#\ coding\:\ utf\-8\
\<\;odoo\>\;\
\ \;\ \;\ \;\ \<\;data\\ \;\\\noupdate\\\=\"1\"\\\>\;\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \<\;record\\ \;\\\id\\\=\"payment_acquirer_paytoday\"\\ \;\\\model\\\=\"payment\.acquirer\"\\\>\;\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \<\;field\\ \;\\\name\\\=\"name\"\\\>\;\\PayToday\\\<\;\/field\>\;\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \<\;field\\ \;\\\name\\\=\"provider\"\\\>\;\\paytoday\\\<\;\/field\>\;\
\ \;\ \;\ \;\ \;\ \ \;\ \;\ \;\ \;\ \;\ \;\ \;\<\;field\\ \;\\\name\\\=\"company_id\"\\ \;\\\ref\\\=\"base\.main_company\"\\\/\>\;\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \<\;field\\ \;\\\name\\\=\"image_128\"\\ \;\\\type\\\=\"base64\"\\ \;\\\file\\\=\"payment_paytoday\/static\/src\/img\/paytoday_icon\.png\"\\\/\>\;\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \<\;field\\ \;\\\name\\\=\"view_template_id\"\\ \;\\\ref\\\=\"payment_paytoday\.paytoday_form\"\\\/\>\;\
\ \;\ \;\ \;\ \;\ \;\ \;\ \ \;\<\;\/record\>\;\
\ \;\ \;\ \;\ \<\;\/data\>\;\
\<\;\/odoo\>\;\\\\\\\
\
\\import\\ \;\\\logging\
\\import\\ \;\\\requests\
\
\\from\\ \;\\\odoo\\ \;\\\import\\ \;\\\api\\\,\\ \;\\\fields\\\,\\ \;\\\models\
\\from\\ \;\\\odoo\.tools\.float_utils\\ \;\\\import\\ \;\\\float_compare\\\,\\ \;\\\float_repr\\\,\\ \;\\\float_round\
\\from\\ \;\\\odoo\.addons\.payment\.models\.payment_acquirer\\ \;\\\import\\ \;\\\ValidationError\
\
_logger\ \=\ logging\.getLogger\(__name__\)\
\
\
\\class\\ \;\\\AcquirerPayToday\(models\.Model\)\:\
\ \;\ \;\ \;\ _inherit\ \=\\ \;\\\\'payment\.acquirer\'\
\
\ \;\ \;\ \;\\ \;\\\provider\ \=\ fields\.Selection\(\\selection_add\\\=\[\(\\\'paytoday\'\\\,\\ \;\\\\'PayToday\'\\\)\]\)\
\ \;\ \;\ \;\ paytoday_business_id\ \=\ fields\.Char\(\\\'Paytoday\ ID\'\\\,\\ \;\\\required_if_provider\\\=\\\'paytoday\'\\\,\\ \;\\\groups\\\=\\\'base\.group_user\'\\\)\
\ \;\ \;\ \;\ paytoday_business_name\ \=\ fields\.Char\(\\\'Business\ Name\'\\\,\\ \;\\\required_if_provider\\\=\\\'paytoday\'\\\,\\ \;\\\groups\\\=\\\'base\.group_user\'\\\)\
\
\ \;\ \;\ \;\\ \;\\\def\\ \;\\\paytoday_form_generate_values\\\(\\self\\\,\\ \;\\\values\)\:\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\\ \;\\\self\\\.ensure_one\(\)\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\\ \;\\\\#\ currency\ \=\ self\.env\[\'res\.currency\'\]\.sudo\(\)\.browse\(values\[\'currency_id\'\]\)\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \#\ if\ currency\ \!\=\ self\.env\.ref\(\'base\.NAD\'\)\:\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \#\ \;\ \;\ \;\ raise\ ValidationError\(_\(\'Currency\ not\ supported\ by\ PayToday\'\)\)\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\\ \;\\\values\.update\(\{\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\\ \;\\\\'business_id\'\\\:\\ \;\\\self\\\.paytoday_business_id\\\,\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\\ \;\\\\'business_name\'\\\:\\ \;\\\self\\\.paytoday_business_name\\\,\
\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\ \;\\ \;\\\\'amount\'\\\:\ float_repr\(float_round\(values\.get\(\\\'amount\'\\\)\\\,\\ \;\\\2\\