Fundraising tech/Ingenico Connect

This page exists to describe the work involved in converting our Ingenico payment processor integration to their new Connect API. There was some early discussion here: https://www.mediawiki.org/wiki/Talk:Fundraising_tech/Chat/Ingenico_Connect

Credit Cards
We're using their Hosted Checkout integration to have donors submit credit card information directly to Ingenico. The original setup call gives us a hosted checkout ID. When the donor returns, we use the hosted checkout ID to get the payment status.

The hosted checkout ID is sent in the initial pending message as 'gateway_session_id' (Paypal Express also sends this field). When a payment is not finalized at paymentswiki, the orphan rectifier can use that field to look up the status and resolve the payment.

Recurring
As with the old integration, recurring payments are charged from our end. We call a tokenize method to get a payment token based on the first payment. The plan is to store the payment token in civi's civicrm_payment_token table, then use that to create the future installments. Still to be determined is how Ingenico Connect relates subsequent installments to the original. Also: how does the payment_token table relate to contribution_recur table?

iDEAL
We've been using the Connect integration for a while to look up bank lists.