Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request Upgrade #16

Open
djpimp2010 opened this issue Apr 11, 2024 · 3 comments
Open

Feature Request Upgrade #16

djpimp2010 opened this issue Apr 11, 2024 · 3 comments

Comments

@djpimp2010
Copy link

djpimp2010 commented Apr 11, 2024

I am working on an integration with a genesis API, using ApplePay.

The documentation says the method of overriding a Terminal ID is to import the config file and update the variable.

We cannot do this, as under high volume, with users using Apple Pay / Google Pay / 3DS, each payment request would set the global customer token for the Terminal ID, and it would affect other transactions.

To avoid this, I have forked the repo and made a tweak, this seems to work fine, and can now pass in a Terminal ID along with the request data.

(I've made another tweak too, which helps our audit system, so not worth me doing a PR for this simple code snippet.)

It would be awesome if you could roll this out globally to all of your methods please.

Thanks!

Screenshot 2024-04-11 at 13 49 53

@dyd
Copy link
Member

dyd commented May 2, 2024

Hello @djpimp2010

I think that there is no need for such a tweak.

Check here.

@dyd dyd closed this as completed May 2, 2024
@djpimp2010
Copy link
Author

Hi @dyd

When the node server loads, it loads the config object into memory.
This single config object is referenced by all of the transaction types.

If you need to send different transaction types to a different terminal, you cannot just override the global config object, because under a high traffic situation, where 10x payments may happen within a few seconds, there is no continuity.

A payment request may change the global config object to update the terminal, but before its reached the next part of the program, to then process the transaction request, a different payment request has already set the global config object to a different terminal ID.

There is no protection against a condition like that, on a per-transactional basis, where each transaction type has to set its own terminal ID.

This will cause big problems under high traffic.

@dyd
Copy link
Member

dyd commented May 3, 2024

Hi @djpimp2010,

OK. I got it. We will think about it.

Thank you for your report!

@dyd dyd reopened this May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants