Projet

Général

Profil

styling.patch

Antoine Nguyen, 02 février 2016 09:50

Télécharger (5,87 ko)

Voir les différences:


  

eopayment/common.py
108 108

  
109 109
class Form(object):
110 110
    def __init__(self, url, method, fields, encoding='utf-8',
111
                 submit_name='Submit', submit_value='Submit'):
111
                 submit_name='Submit', submit_value='Submit',
112
                 submit_css=None):
112 113
        self.url = url
113 114
        self.method = method
114 115
        self.fields = fields
115 116
        self.encoding = encoding
116 117
        self.submit_name = submit_name
117 118
        self.submit_value = submit_value
119
        self.submit_css = submit_css
118 120

  
119 121
    def __repr__(self):
120 122
        s = '<form method="%s" action="%s">' % (self.method, self.url)
......
130 132
        if self.submit_value:
131 133
            s += ' value="%s"' % cgi.escape(
132 134
                self.submit_value.encode(self.encoding))
135
        if self.submit_css:
136
            s += ' class="%s"' % cgi.escape(
137
                self.submit_css.encode(self.encoding))
133 138
        s += ' />'
134 139
        s += '\n</form>'
135 140
        return s
eopayment/paybox.py
189 189
                'name': 'callback',
190 190
                'caption': _('Callback URL'),
191 191
            },
192
            {
193
                'name': 'callback_method',
194
                'caption': _('Method used for callback URL'),
195
                'default': 'GET',
196
            },
197
            {
198
                'name': 'return_url',
199
                'caption': _('Return URL after transaction')
200
            },
201
            {
202
                'name': 'payment_type',
203
                'caption': _('Payment type')
204
            },
205
            {
206
                'name': 'card_type',
207
                'caption': 'Card type'
208
            }
192 209
        ]
193 210
    }
194 211

  
......
204 221
                                self.rang, self.identifiant)
205 222
        d['PBX_CMD'] = unicode(transaction_id)
206 223
        d['PBX_PORTEUR'] = unicode(email)
207
        d['PBX_RETOUR'] = 'montant:M;reference:R;code_autorisation:A;erreur:E;signature:K'
224
        d['PBX_RETOUR'] = (
225
            'montant:M;reference:R;code_autorisation:A;erreur:E;signature:K;'
226
            'date:W;heure:Q'
227
        )
208 228
        d['PBX_HASH'] = 'SHA512'
209
        d['PBX_TIME'] = kwargs.get('time') or (unicode(datetime.datetime.utcnow().isoformat('T')).split('.')[0]+'+00:00')
229
        d['PBX_TIME'] = kwargs.get('time') or (
230
            unicode(datetime.datetime.utcnow().isoformat('T'))
231
            .split('.')[0]+'+00:00')
210 232
        d['PBX_ARCHIVAGE'] = transaction_id
211 233
        if self.callback:
212 234
            d['PBX_REPONDRE_A'] = unicode(self.callback)
235
            d['PBX_RUF1'] = unicode(self.callback_method)
236
        if self.payment_type and self.card_type:
237
            d['PBX_TYPEPAIEMENT'] = self.payment_type
238
            d['PBX_TYPECARTE'] = self.card_type
239
        if self.return_url:
240
            for key in [
241
                    'PBX_EFFECTUE', 'PBX_REFUSE', 'PBX_ANNULE', 'PBX_ATTENTE']:
242
                d[key] = self.return_url
213 243
        d = d.items()
214 244
        d = sign(d, self.shared_secret.decode('hex'))
215 245
        url = URLS[self.platform]
......
220 250
                'name': unicode(k),
221 251
                'value': unicode(v),
222 252
            })
253
        submit_value = kwargs.get("submit_value", u"Envoyer")
254
        submit_css = kwargs.get("submit_css")
223 255
        form = Form(url, 'POST', fields, submit_name=None,
224
                    submit_value=u'Envoyer', encoding='utf-8')
256
                    submit_value=submit_value, submit_css=submit_css,
257
                    encoding='utf-8')
225 258
        return transaction_id, FORM, form
226 259

  
227 260
    def response(self, query_string, callback=False, **kwargs):
......
237 270
                    data.append('%s=%s' % (key, urllib.quote(d[key][0])))
238 271
            else:
239 272
                for key, value in urlparse.parse_qsl(query_string, True, True):
240
                    if key == 'signature':
273
                    if key == 'heure':
241 274
                        break
242 275
                    data.append('%s=%s' % (key, urllib.quote(value)))
243 276
            data = '&'.join(data)
eopayment/systempayv2.py
81 81
    Parameter('vads_capture_delay', 'n', 6, max_length=3, default=''),
82 82
    Parameter('vads_contrib', 'ans', 31, max_length=255, default='eopayment'),
83 83
    # defaut currency = EURO, norme ISO4217
84
    Parameter('vads_currency', 'n', 10, length=3, default=978, needed=True),
84
    Parameter('vads_currency', 'n', 10, length=3, default='978', needed=True),
85 85
    Parameter('vads_cust_address', 'an', 19, max_length=255),
86 86
    # code ISO 3166
87 87
    Parameter('vads_cust_country', 'a', 22, length=2, default='FR'),
......
304 304
        transaction_id = '%s_%s' % (fields[VADS_TRANS_DATE], transaction_id)
305 305
        self.logger.debug('%s transaction id: %s', __name__, transaction_id)
306 306
        form = Form(
307
                url=self.service_url,
308
                method='POST',
309
                fields=[{'type': 'hidden',
310
                        'name': name,
311
                        'value': value} for name, value in fields.iteritems()])
307
            url=self.service_url,
308
            method='POST',
309
            fields=[{'type': 'hidden',
310
                     'name': name,
311
                     'value': value} for name, value in fields.iteritems()],
312
            submit_value=kwargs.get('submit_value', 'Submit'),
313
            submit_css=kwargs.get('submit_css')
314
        )
312 315
        return transaction_id, FORM, form
313 316

  
314 317
    def response(self, query_string, **kwargs):