Commit Graph
25 Commits
Author SHA1 Message Date
Nicolas Martinelli ab094e5a80 [FIX] payment_authorize: acquier reference
The field `acquirer_reference` is not a mandatory field. If not
retrieved from the provider, it will have a NULL value in the DB, and
therefore will be `False` in Python.

The `capture` and `void` method will crash in this case, because of:
`etree.SubElement(tx, "refTransId").text = transaction_id`

opw-751231
2017-07-14 16:05:35 +02:00
Joren Van Onder 91abcdf842 [FIX] payment_*: always read callback_eval as superuser
The callback_eval field has a groups parameter of
base.group_system. Without this patch everyone not part of that group
ends up with an access right error when the system attempts to read
that field.

Previously this was not a problem because all code reading
callback_eval was executed with the superuser already. New code has
been introduced however that does not do this (eg. paying with a
payment.token from the backend).

opw-741181
2017-06-26 11:19:46 +02:00
Christophe Matthieu b21f6e36ce [FIX] payment_authorize: wrong error message because of missing import 2017-06-21 12:11:40 +02:00
Cedric Snauwaert 1b0a8cc595 [FIX] payment_authorize: missing import 2017-06-21 10:44:46 +02:00
Yenthe V.G 61f6756a7c [FIX] payment_authorize: add missing translation ability
Closes #17257
2017-05-29 11:17:15 +02:00
Nicolas Martinelli c9c110d088 [FIX] payment_authorize: no partner email
When no email is defiend on the partner, a traceback is raised when
paying with Authorize.net.

The `text` attribute requires a string, not a boolean (`False` in this
case).

opw-728301
2017-04-11 10:43:09 +02:00
Nicolas Martinelli cd605442ae [FIX] payment_authorize: reference length
The `reference` field is used as `invoiceNumber` in the Authorize.net
API. However, this field is limited to 20 characters. Larger references
will produce an error when the API is called.

Source: https://api.authorize.net/xml/v1/schema/AnetApiSchema.xsd

opw-704615
2017-01-27 14:48:36 +01:00
Nicolas Martinelli b27787c92c [FIX] payment_authorize: reconcile transaction
- Create a SO, link it to a Quotation Template (e.g. "Odoo Monthly" from
  the demo data). Note that the Quotation Template must require a
  payment.
- Click on "Preview", then "Accept & Pay" in the website quote
- Pay with Authorize.net
- In the Subscription linked to the SO, change the invoice date to a
  date in the past (so it will generate an invoice)
- Execute manually the Scheduled Action "Generate Recurring Invoices and
  Payments for Subscription Contracts"

The payment is correctly registered on Authorize (you should receive a
confirmation email), but:
- No invoice is generated
- The next invoice date has not been changed

The issue comes from the fact that:
- `payment_authorize` executes the callback method
  `reconcile_pending_transaction` before changing the status of the
  transaction.
- The method `reconcile_pending_transaction` cancels and unlinks the
  invoice if the transaction is not 'done' or 'authorized'.

In order to solve the issue, two fixes are necessary:
- Switch the status update with the callback (this commit), as it is
  already the case for Ogone and Stripe.
- Do not manually call `reconcile_pending_transaction`, since it is
  already executed as callback. This avoids two increments of the period
  (commit in Enterprise).

opw-694730
2016-12-09 09:14:48 +01:00
Christophe Simonis 298e2032ea [MERGE] forward port branch saas-12 up to 9f28139 2016-09-09 18:13:31 +02:00
Christophe Simonis 7a02b90e17 [MERGE] forward port branch saas-11 up to dc4d6b6 2016-09-09 15:43:06 +02:00
Christophe Simonis af87c57e51 [MERGE] forward port branch saas-6 up to f98665f 2016-09-09 11:26:15 +02:00
Ravi Gohil b226510840 [IMP] payment_*: avoid access error on provider model
As provider model is intended to be used internally restricting the read of
some private fields to the employee group avoid creating access issues.
2016-09-06 10:20:41 +02:00
Damien Bouvy ffd527d027 [IMP] payment, payment_*: add/improve tokenization support
This commit improves the tokenization process, allowing users
to set the acquirer to save payment data never, always or letting
the customer decide (only implemented in ecommerce for now).

Support for tokenization is improved for Ogone and Authorize.net

This commits also factorizes advanced payment features support
(authorization, tokenization, fees computation) in a generic method
overriden by every provider to specifiy which features are supported.
This process can be used in views to hide/show fields depending on
feature support or in constraint checks.
2016-09-01 15:58:41 +02:00
Damien Bouvy a2b9b3a6bb [IMP] payment_authorize: add server2server support
This commit add s2s communication to the Authorize.net payment
provider, allowing the user to:
- Create a payment token
- Charge a payment token
- Authorize/capture transactions
2016-09-01 15:58:41 +02:00
Thibault Delavallée 76d124299b [CLN] payment_authorize: cleaning and guidelines
As this module is already in new API only small linting is performed.
2016-07-06 15:10:46 +02:00
Thibault Delavallée ad93be5df9 [MOV] payment_authorize: file organization 2016-07-06 15:10:45 +02:00
Thibault Delavallée 88126f95d3 [REF] payment_*: method signatures
Methods with signature

 - cr, uid, id
 - cr, uid, <browse_record>

have been refactored to be future multi ensure one methods.
2016-07-06 11:47:39 +02:00
Joren Van Onder 101a9693b3 [FIX] payment*: fix invalid coding
-*- coding: utf-'8' "-*-"

is not a valid encoding. Introduced by
666387a274 I think. It was probably a
typo/replace gone bad and it got copy-pasted everywhere. Emacs complains
every time you try to save changes to files with this invalid encoding.

This changes all of them to

coding: utf-8

adhering to eae045949d.

Done with:

find . -name '*.py' -print0 |\
xargs -0 sed -ie 's/-\*- coding: utf-'"'"'8'"'"' "-\*-"/coding: utf-8/'
2016-06-17 13:09:18 +02:00
Nicolas Lempereur 53f86de70d [FIX] payment_authorize: use state code instead of state name
The state given to authorize requests should be the state code and not
the state name.

source:
https://support.authorize.net/authkb/index?page=content&id=A1454&actp=RSS

opw-675634
2016-05-12 11:52:10 +02:00
Nicolas Martinelli 2d4257da1a [FIX] payment_authorize: send billing and shipping data
Authorize.net requires both billing and shipping data.

opw-660771
2016-01-20 15:48:31 +01:00
Dave Lasley 3dc5a38855 [FIX] payment_authorize: update API URL
Update Authorize.net to new gateway URI
cf https://community.developer.authorize.net/t5/The-Authorize-Net-Developer-Blog/Important-Authorize-Net-Networking-Change/ba-p/51272
Closes #8191
2015-09-14 17:53:40 +02:00
Damien Bouvy 526f27ddac [IMP] payment,payment_*,website_quote,website_sale: new rendering mechanism compatibility for payment providers
merge *ALL* the dicts

The form rendering used to receive a dict for partner information and a dict for tx information and to transmit another dict to the qweb template; now everything is done in a single dict
2015-09-04 16:08:22 +02:00
Deep Bundela f76c78d598 [IMP] payment_*: use standard fields to store tx information instead of adding specific fields for every.payment.provider 2015-09-04 16:08:22 +02:00
Ajay javiya 8a6e859c2b [ADD] New payment acquirer Authorize.net. 2015-04-21 17:15:05 +02:00
Ajay javiya 90869f1de4 [ADD] New payment acquirer Authorize.net. 2015-01-16 11:22:35 +01:00