Skip to content

Conversation

@benjamin-si
Copy link

Add possibility to set an offset on orderId from EbicsClient Object.

To be used for certain banks that require the orderId to be incremented to get around an erroneous initialization call.

@benjamin-si benjamin-si changed the title Add methode to set define an offset on OrderId Add methode to define an offset on OrderId Feb 13, 2025
* @return string
*/
public function generateOrderId(string $partnerId): string
public function generateOrderId(string $partnerId, int $offset = 0): string
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe it will be Okay just to change logic for generateOrderId without option to impact on algo by pass offset.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andrew-svirin I'm not sure I understand, the idea would be to pass another value than the partner ID?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean just change previous logic to a new one. If it works with your bank and If tests will pass, then it will single correct variant for generation OrderId and no need to adopt different algorithms for different banks.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the purpose is to be able to change this number. The banks block the orderId in case of failure on a call INI for example. It's seem to be a general case.
To make another you have to change this orderID. I don't see how I could change the logic of the orderId without passing an offset.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@benjamin-si would it work if you make default logic with offset?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or maybe just manual define a orderId, it will be easier

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add to algorith dependency on current time? To be sure that next time it will generate a new value?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but you need the same orderId on an INI and HIA call. If it is made separately, it could generate two different orderId.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, As I remember INI and HIA does not require to have he same orderId. But I will check it in specification.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found only this information. Take in account that if you abort transaction without acknowladge, then this orderId can be hanged for some time.

зображення

@andrew-svirin
Copy link
Member

Change algoritm to generate random OrderId

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

Successfully merging this pull request may close these issues.

2 participants