There is an API call we can make to find out, but it costs money, so do it as little as possible and store in memcache or something.
Description
Details
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Open | None | T92699 Fundraise in the Netherlands | |||
Resolved | Pcoombe | T158905 WMF Fundraising - 2016-17 - Netherlands (Mar 21 - Apr 18) | |||
Declined | Ejegg | T128692 Store and update list of currently working iDEAL banks |
Event Timeline
from an email with ingenico:
Dear all,
Thank you for your e-mail.
Kindly be advised that we do support the Bunq bank. Please find below the result of the GET_DIRECTORY response for iDeal which lists all the supported banks:
<XML>
<REQUEST>
<ACTION>GET_DIRECTORY</ACTION>
<META>
<MERCHANTID>6570</MERCHANTID>
<IPADDRESS>10.171.99.170</IPADDRESS>
<VERSION>2.0</VERSION>
<REQUESTIPADDRESS>127.0.0.2</REQUESTIPADDRESS>
</META>
<PARAMS>
<GENERAL>
<PAYMENTPRODUCTID>809</PAYMENTPRODUCTID>
<COUNTRYCODE>NL</COUNTRYCODE>
<CURRENCYCODE>EUR</CURRENCYCODE>
</GENERAL>
</PARAMS>
<RESPONSE>
<RESULT>OK</RESULT>
<META>
<RESPONSEDATETIME>20160321111815</RESPONSEDATETIME>
<REQUESTID>rOPUP4595092c29d4</REQUESTID>
</META>
<ROW>
<ISSUERID>ABNANL2A</ISSUERID>
<ISSUERNAME>ABN Amro</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>ASNBNL21</ISSUERID>
<ISSUERNAME>ASN Bank</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>FRBKNL2L</ISSUERID>
<ISSUERNAME>Friesland Bank</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>INGBNL2A</ISSUERID>
<ISSUERNAME>ING</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>KNABNL2H</ISSUERID>
<ISSUERNAME>Knab</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>RABONL2U</ISSUERID>
<ISSUERNAME>Rabobank</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>RBRBNL21</ISSUERID>
<ISSUERNAME>RegioBank</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>SNSBNL2A</ISSUERID>
<ISSUERNAME>SNS Bank</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>TRIONL2U</ISSUERID>
<ISSUERNAME>Triodos Bank</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>FVLBNL22</ISSUERID>
<ISSUERNAME>Van Lanschot Bankiers</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
<ROW>
<ISSUERID>BUNQNL2A</ISSUERID>
<ISSUERNAME>bunq</ISSUERNAME>
<ISSUERLIST>Short</ISSUERLIST>
<COUNTRYNAMES>Nederland</COUNTRYNAMES>
</ROW>
</RESPONSE>
</REQUEST>
</XML>
Should you have any additional questions, please let us know.
With Kind Regards,
Esmee Kerklaan
Merchant Services
@awight and I talked. it may actually be easier to track which banks are not available because they will return an error message.
Change 333155 had a related patch set uploaded (by Ejegg):
WIP add Ingenico bank payment provider
Working on a way to do this that pushes more payment code into SmashPig. However, it's using a component that needs PHP 5.4.
@Jgreen what's your timeline for updating the Civi box?
Also, fr-tech, should we be trying to keep SmashPig working on PHP 5.3 for the sake of getting other users? We'd need to replace the Ingenico SDK with our own code (probably signatures will be most annoying), but that might make it easier to keep logging and low-level http stuff the same across gateways.
I'm not sure yet whether we're replacing the hardware or upgrading the
existing machine. Either way Ubuntu Precise is EOL 4/2017 so that's our
drop-dead date for OS and PHP upgrade.
Change 333154 had a related patch set uploaded (by Ejegg):
WIP base class for Ingenico payments without SDK
Change 334733 had a related patch set uploaded (by Ejegg):
WIP Look up iDEAL banks without Ingenico SDK
Change 336333 had a related patch set uploaded (by Ejegg):
WIP look up iDEAL banks, cache in Memcache
Change 337419 had a related patch set uploaded (by Ejegg):
Cache bank lookups via PSR-6
Change 337420 had a related patch set uploaded (by Ejegg):
WIP look up iDEAL banks, provide PSR6 to SmashPig
Change 338277 had a related patch set uploaded (by Ejegg):
Use dependency injection to get BankPaymentProvider
Change 338277 abandoned by Ejegg:
Use dependency injection to get BankPaymentProvider
Reason:
doing this differently, with a PaymentProvider factory method
Change 336333 abandoned by Ejegg:
WIP look up iDEAL banks, cache in Memcache
Reason:
Pushing caching down into SmashPig via PSR-6 interface
Change 339107 had a related patch set uploaded (by Ejegg):
Fixes for iDEAL/PSR-6 caching
Change 339331 had a related patch set uploaded (by Ejegg):
Ingenico API decodes JSON, throws exception on errors
Code is about ready (last patch adds some error handling). Just emailed Ingenico to get some production credentials for Connect.
Change 339331 merged by jenkins-bot:
Ingenico API decodes JSON, throws exception on errors
Change 339330 had a related patch set uploaded (by Ejegg):
Use HashBag instead of EmptyBag
Change 339330 merged by jenkins-bot:
[mediawiki/extensions/DonationInterface] Use HashBag instead of EmptyBag
Seems to be caching longer than expected (default was 5 minutes, and I don't see the API call repeated in the logs when I reload 15 minutes later). Digging in...
The caching thing is really stumping me.
I was able to replicate the 'caching too long' locally with CACHE_MEMCACHED only. CACHE_DB was expiring correctly. I could even replicate the problem telnetting in to memcache - it would expire keys on time if I gave it a number of seconds, but not if I gave it a unix timestamp.
Then I restarted memcached with -vv in the conf file and the problem went away. It expired correctly via telnet and via the MemCachedBagOStuff. Restarting again without the -vv, it STILL respected expiration timestamps.
Change 342266 had a related patch set uploaded (by Ejegg):
[wikimedia/fundraising/SmashPig] Work around Memcache not expiring some things
If someone can review this workaround Monday, we should be able to deploy it the same day.
Change 342266 merged by jenkins-bot:
[wikimedia/fundraising/SmashPig] Work around Memcache not expiring some things
Change 345696 had a related patch set uploaded (by Ejegg):
[wikimedia/fundraising/SmashPig@master] Break out unofficial iDEAL status lookup
Change 345696 merged by jenkins-bot:
[wikimedia/fundraising/SmashPig@master] Break out unofficial iDEAL status lookup
Change 350895 had a related patch set uploaded (by Ejegg; owner: Ejegg):
[mediawiki/extensions/DonationInterface@master] Tweak smashpig initialiazation order
Change 350895 abandoned by Ejegg:
Tweak smashpig initialiazation order
Reason:
New split config will make this obsolete
@Ejegg: Hi, all related patches in Gerrit have been merged or abandoned. Is there more to do in this task? Asking as you are set as task assignee. Thanks in advance!
(You can change the task status via Add Action... → Change Status in the dropdown menu.)
Turns out we're not able to do anything with the data even if we maintain a current copy of it locally.