From 29fefafcd684cc15f74d0441232bb3bfeda376f8 Mon Sep 17 00:00:00 2001
From: Wolfgang Taferner <wtaferner@users.noreply.github.com>
Date: Sat, 20 Sep 2014 19:18:42 +0200
Subject: [PATCH] [FIX] paymnet_ogon: add missing SHA OUT keys

The SHA OUT list was incomplete and therefore SHASIGN was not matching anymore
List of keys from https://viveum.v-psp.com/Ncol/Viveum_e-Com-BAS_EN.pdf
---
 addons/payment_ogone/models/ogone.py | 62 +++++++++++++++++++++++++++-
 1 file changed, 60 insertions(+), 2 deletions(-)

diff --git a/addons/payment_ogone/models/ogone.py b/addons/payment_ogone/models/ogone.py
index 80b5e0d567e8..268487d1040a 100644
--- a/addons/payment_ogone/models/ogone.py
+++ b/addons/payment_ogone/models/ogone.py
@@ -69,8 +69,66 @@ class PaymentAcquirerOgone(osv.Model):
             if inout == 'in':
                 return True
             else:
-                keys = "ORDERID CURRENCY AMOUNT PM ACCEPTANCE STATUS CARDNO ALIAS ED CN TRXDATE PAYID NCERROR BRAND ECI IP COMPLUS".split()
-                return key.upper() in keys
+                # SHA-OUT keys
+                # source https://viveum.v-psp.com/Ncol/Viveum_e-Com-BAS_EN.pdf
+                return [
+                    'AAVADDRESS',
+                    'AAVCHECK',
+                    'AAVMAIL',
+                    'AAVNAME',
+                    'AAVPHONE',
+                    'AAVZIP',
+                    'ACCEPTANCE',
+                    'ALIAS',
+                    'AMOUNT',
+                    'BIC',
+                    'BIN',
+                    'BRAND',
+                    'CARDNO',
+                    'CCCTY',
+                    'CN',
+                    'COMPLUS',
+                    'CREATION_STATUS',
+                    'CURRENCY',
+                    'CVCCHECK',
+                    'DCC_COMMPERCENTAGE',
+                    'DCC_CONVAMOUNT',
+                    'DCC_CONVCCY',
+                    'DCC_EXCHRATE',
+                    'DCC_EXCHRATESOURCE',
+                    'DCC_EXCHRATETS',
+                    'DCC_INDICATOR',
+                    'DCC_MARGINPERCENTAGE',
+                    'DCC_VALIDHOURS',
+                    'DIGESTCARDNO',
+                    'ECI',
+                    'ED',
+                    'ENCCARDNO',
+                    'FXAMOUNT',
+                    'FXCURRENCY',
+                    'IBAN',
+                    'IP',
+                    'IPCTY',
+                    'NBREMAILUSAGE',
+                    'NBRIPUSAGE',
+                    'NBRIPUSAGE_ALLTX',
+                    'NBRUSAGE',
+                    'NCERROR',
+                    'NCERRORCARDNO',
+                    'NCERRORCN',
+                    'NCERRORCVC',
+                    'NCERRORED',
+                    'ORDERID',
+                    'PAYID',
+                    'PM',
+                    'SCO_CATEGORY',
+                    'SCORING',
+                    'STATUS',
+                    'SUBBRAND',
+                    'SUBSCRIPTION_ID',
+                    'TRXDATE',
+                    'VC'
+                ]
 
         items = sorted((k.upper(), v) for k, v in values.items())
         sign = ''.join('%s=%s%s' % (k, v, key) for k, v in items if v and filter_key(k))
-- 
GitLab