Page MenuHomePhabricator

Apple Pay: Payments require capture
Closed, ResolvedPublic

Description

Apple Pay payments have been sitting in "Authorised" status in both test and production environments. It seems we need an API capture call to settle them, as with credit cards. (Initially, we thought this was not the case, as explained here.)

I'm not sure if we should try to capture all Apple Pay transactions. (Just learned we do need to capture them all.) I did hack my local setup to capture one, and it did indeed cause it to go to "SentForSettle" status.

Event Timeline

We just learned from Adyen that all Apple Pay transactions do need to be captured. We can either do it ourselves, as we do for cards, or set the payments to automatically capture after a certain time. Thanks, all!

I vote we automatically capture within minutes given we do not do fraud checks on Apple Pay transactions.

We just need to make sure to save the transaction to Civi under the correct pspReference / gateway_txn_id - I think Adyen changes the pspReference after a payment is captured.

It might be easiest for us to capture from payments-wiki as we do with credit cards, so we have all the correct info to send to the queue right then and there. Otherwise we would have to wait till we get an IPN message after the capture for the updated pspReference.

+1 for doing it right away as we have seen IPN messages in the past take 5-10 minutes

Change 736009 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/SmashPig@master] Adyen: Maintenance script to batch aprove payments

https://gerrit.wikimedia.org/r/736009

Change 736028 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/SmashPig@master] Apple Pay: indicate approval needed after creation

https://gerrit.wikimedia.org/r/736028

Change 736029 had a related patch set uploaded (by Ejegg; author: Ejegg):

[mediawiki/extensions/DonationInterface@master] Apple Pay: Skip validation phase fraud filters

https://gerrit.wikimedia.org/r/736029

Change 736028 merged by jenkins-bot:

[wikimedia/fundraising/SmashPig@master] Apple Pay: indicate approval needed after creation

https://gerrit.wikimedia.org/r/736028

Change 736009 merged by jenkins-bot:

[wikimedia/fundraising/SmashPig@master] Adyen: Maintenance script to batch aprove payments

https://gerrit.wikimedia.org/r/736009

Change 736029 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Apple Pay: Skip validation phase fraud filters

https://gerrit.wikimedia.org/r/736029

OK, the payments-wiki change has been deployed, and new Apple Pay donations are getting captured right after authorization.

We have also batch-captured all the outstanding Apple Pay transactions from Oct 31-now.

Change 736297 had a related patch set uploaded (by AndyRussG; author: AndyRussG):

[wikimedia/fundraising/SmashPig@master] Apple Pay: Throw exception if details status normalizer requested

https://gerrit.wikimedia.org/r/736297

Change 736297 merged by jenkins-bot:

[wikimedia/fundraising/SmashPig@master] Apple Pay: Throw exception if details status normalizer requested

https://gerrit.wikimedia.org/r/736297

XenoRyet set Final Story Points to 4.