Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[18.0][MIG] l10n_fr_pos_caisse_ap_ip #590

Open
wants to merge 28 commits into
base: 18.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
4d678f6
[ADD] module l10n_fr_pos_caisse_ap_ip
alexis-via Jul 4, 2023
f331ada
l10n_fr_pos_caisse_ap_ip: parse answer from payment terminal in case …
alexis-via Jul 4, 2023
e486605
l10n_fr_pos_caisse_ap_ip: add support for failures
alexis-via Jul 4, 2023
b8ffe11
l10n_fr_pos_caisse_ap_ip: rename fields and improve view
alexis-via Jul 4, 2023
8f4c12a
l10n_fr_pos_caisse_ap_ip: answer is now always json
alexis-via Jul 4, 2023
9e9facd
[UPD] javascript no polling
Jul 4, 2023
c4a67a4
l10n_fr_pos_caisse_ap_ip: fix bad method name
alexis-via Jul 4, 2023
d8496d4
[FIX] handle errors correctly
Jul 4, 2023
cc74d8a
[FIX] better handling of timeouts
Jul 4, 2023
1b5df47
l10n_fr_pos_caisse_ap_ip: catch exception on TCP socket
alexis-via Jul 4, 2023
5c1937d
l10n_fr_pos_caisse_ap_ip: Add fr translation
alexis-via Jul 4, 2023
1b04a4e
l10n_fr_pos_caisse_ap_ip: add file CREDITS.rst
alexis-via Jul 5, 2023
c9d86df
[UPD] Update l10n_fr_pos_caisse_ap_ip.pot
Jul 22, 2023
2c172b5
[UPD] README.rst
OCA-git-bot Jul 22, 2023
84f28ae
[ADD] icon.png
OCA-git-bot Jul 22, 2023
0a5e773
Update translation files
weblate Jul 22, 2023
ec42d12
[UPD] README.rst
OCA-git-bot Sep 3, 2023
d23dbc3
Added translation using Weblate (Spanish)
Ivorra78 Sep 15, 2023
ffeb70b
Translated using Weblate (Spanish)
Ivorra78 Sep 15, 2023
0b69761
Update translation files
weblate Oct 9, 2023
71860a4
[MIG] l10n_fr_pos_caisse_ap_ip from v16 to v17
alexis-via Jan 22, 2024
e50af72
[UPD] Update l10n_fr_pos_caisse_ap_ip.pot
Feb 16, 2024
87d03b5
[BOT] post-merge updates
OCA-git-bot Feb 16, 2024
ad456a4
Update translation files
weblate Feb 16, 2024
7c03dce
[REF] l10n_fr_pos_caisse_ap_ip: pre-commit fixes
dreispt May 24, 2024
b499b07
[BOT] post-merge updates
OCA-git-bot May 24, 2024
72729ea
[IMP] l10n_fr_pos_caisse_ap_ip: pre-commit auto fixes
alexis-via Dec 10, 2024
826de72
[MIG] l10n_fr_pos_caisse_ap_ip from v17 to v18
alexis-via Dec 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 149 additions & 0 deletions l10n_fr_pos_caisse_ap_ip/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
==========================================
POS: Caisse-AP payment protocol for France
==========================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:afad03e54d3ac936bb21c8dce0a86827a0355a540c0646ffe42f12465ee583d0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--france-lightgray.png?logo=github
:target: https://github.com/OCA/l10n-france/tree/18.0/l10n_fr_pos_caisse_ap_ip
:alt: OCA/l10n-france
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/l10n-france-18-0/l10n-france-18-0-l10n_fr_pos_caisse_ap_ip
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-france&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module adds support for the **Caisse AP** protocol over IP in the
Odoo Point of Sale.

The `Caisse AP
protocol <https://associationdupaiement.fr/protocoles/protocole-caisse/>`__
is a vendor-independent protocol used in France to communicate between a
point of sale and a payment terminal. It is implemented by
`Ingenico <https://ingenico.com/fr/produits-et-services/terminaux-de-paiement>`__
payment terminals, `Verifone <https://www.verifone.com/>`__ payment
terminal and other brands of payment terminals. This protocol is
designed by a French association called `Association du
paiement <https://associationdupaiement.fr/>`__, abbreviated as **AP**.
Note that the Caisse-AP protocol is used by Ingenico payment terminals
deployed in France, but not by the same model of Ingenico payment
terminals deployed in other countries!

This module support a bi-directionnal link with the payment terminal:

1. it sends the amount to the payment terminal
2. it waits for the end of the payment transaction
3. it parses the answer of the payment terminal which gives the payment
status: in case of success, the payment line is automatically
validated ; in case of failure, an error message is displayed and the
Odoo user can retry or delete the payment line.

The Caisse-AP protocol was initially written for serial and USB. Since
the Caisse AP protocol version 3.x, it also supports IP. When used over
IP, the client (point of sale) and the server (payment terminal)
exchange simple text data encoded as ASCII over a raw TCP socket.

The Caisse-AP protocol has one important drawback: as it uses a raw TCP
socket, it cannot be used from pure JS code. So the JS code of the point
of sale cannot generate the query to send the amount to the payment
terminal by itself. In this module, the JS code of the point of sale
sends a query to the Odoo server that opens a raw TCP socket to the
payment terminal. It implies that, if the Odoo server is not on the LAN
but somewhere on the Internet and the payment terminal has a private IP
on the LAN, you will need to setup a TCP port forwarding rule on the
firewall to redirect the TCP connection of the Odoo server to the
payment terminal.

**Table of contents**

.. contents::
:local:

Configuration
=============

In the menu *Point of sale > Configuration > Payment Methods*, on the
payment method that correspond to a payment by card:

- select the appropriate journal, which should be a bank journal (and
not a cash journal, otherwise the field *Integrate with* is
invisible)
- field *Integration*: selection **Terminal**
- field *Integrate with*: select **Caisse AP over IP (France only)**
- field *Caisse-AP Payment Terminal IP Address*: set the IP address of
the payment terminal,
- field *Caisse-AP Payment Terminal Port*: set the TCP port of the
payment terminal (8888 by default),
- field *Payment Mode*: set *Card* (the value *Check* is for the
*Check* payment method if you use a check printer connected to the
payment terminal such as Ingenico i2200)

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-france/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/l10n-france/issues/new?body=module:%20l10n_fr_pos_caisse_ap_ip%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Akretion

Contributors
------------

- Alexis de Lattre <alexis.delattre@akretion.com>
- Pierrick Brun <pierrick.brun@akretion.com>

Other credits
-------------

The development of this module has been financially supported by
`Camptocamp <https://www.camptocamp.com/>`__.

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-alexis-via| image:: https://github.com/alexis-via.png?size=40px
:target: https://github.com/alexis-via
:alt: alexis-via

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-alexis-via|

This module is part of the `OCA/l10n-france <https://github.com/OCA/l10n-france/tree/18.0/l10n_fr_pos_caisse_ap_ip>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions l10n_fr_pos_caisse_ap_ip/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
25 changes: 25 additions & 0 deletions l10n_fr_pos_caisse_ap_ip/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2023 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "POS: Caisse-AP payment protocol for France",
"version": "18.0.1.0.0",
"category": "Point of Sale",
"license": "AGPL-3",
"summary": "Add support for Caisse-AP payment protocol used in France",
"author": "Akretion,Odoo Community Association (OCA)",
"maintainers": ["alexis-via"],
"website": "https://github.com/OCA/l10n-france",
"depends": ["point_of_sale"],
"data": [
"views/pos_payment_method.xml",
],
"assets": {
"point_of_sale._assets_pos": [
"l10n_fr_pos_caisse_ap_ip/static/src/app/payment_caisse_ap_ip.esm.js",
"l10n_fr_pos_caisse_ap_ip/static/src/overrides/models/models.esm.js",
],
},
"installable": True,
}
Loading
Loading