Commit Graph
8 Commits
Author SHA1 Message Date
Thibault Delavallée cf1df16aea [IMP] payment_*, website_quote: change callback_eval string to parameters
callback_eval is currently a code string that is evaluated directly
at payment confirmation. This commit changes it to have parameters
on the record and method to call on it. Moreover a hash done once at
transaction creation ensure that a modified transaction does not allow
to execute code on other records.
2017-02-13 16:58:47 +01: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
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