Files
odoo_source/addons/payment_razorpay
Denis Ledoux b4a7996e96 [IMP] base, *: change the API of init hooks to pass env
This is mostly a cleaning/refactoring change.

The current API for init hooks (pre, post, uninstall) is to pass
`cr, registry`.
But the first thing which was done by most
post init and uninstall hooks was to create an env using
the cr passed
e.g.
`env = api.Environment(cr, SUPERUSER_ID, {})`
and the `registry` argument was unused in all these hooks,
completely.

By changing the API of hooks to pass `env` instead
of `cr, registry`, we gain in average two lines in every
hooks:
- the line creating the env `env = api.Environment(cr, SUPERUSER_ID, {})`
- the line importing `api` and `SUPERUSER_ID`

Therefore removing ~250 lines of repeated code lines accross odoo/odoo and
odoo/enterprise.
In addition to these lines removed,
it also ease the API of init hooks for Odoo developers,
who are used to that `env` and not so much how to create an `env`
from a cursor.

Part-of: odoo/odoo#108254
2023-02-01 10:25:01 +01:00
..
…
…
…
…

Razorpay

Implementation details

Supported features

  • Payment with redirection flow
  • Manual capture
  • Partial refunds
  • Several payment methods such as debit/credit cards, netbanking, UPI, and others.
  • Webhook.

In addition, Razorpay also allows to implement tokenization but requires passing the card secret for each transaction.

API and gateway

We choose to integrate with Razorpay Hosted Checkout. The other gateways were ruled out. See the task's dev notes for the details on the other gateways.

The version of the API implemented by this module is v1.

Merge details

The first version of the module was specified in task 2800823 and merged with PR odoo/odoo#92848 in saas-15.5.

Testing instructions

The partner's phone number must be a valid Indian phone number. Example: +91123456789

See https://razorpay.com/docs/payments/payments/test-card-upi-details/ for the list of test payment details.