Powiadomienia o usuwaniu zewnętrznej płatności z zamówienia zostały dodane do API V8
Podczas próby usunięcia zewnętrznej płatności wywoływana jest metoda OnPaymentDeleting na odpowiednim IPaymentProcessor.
Niektóre systemy płatności wymagają dokonania płatności w systemie zewnętrznym zanim zamówienie zostanie opłacone w Syrve, więc istnieje okres czasu, gdy płatność została już dokonana w systemie zewnętrznym, ale jeszcze nie w Syrve.
Wcześniej użytkownik mógł usunąć taką płatność bez śladu, a ponieważ Syrve traktowało tę płatność jako nieuregulowaną, była ona usuwana bez anulowania, co prowadziło do błędnej dodatkowej transakcji w systemie zewnętrznym.
Teraz procesor płatności w metodzie OnPaymentDeleting może według własnego uznania:
- nic nie robić - jeśli płatność nie została jeszcze dokonana i nie wymaga żadnych działań przy usuwaniu,
- anulować płatność w systemie zewnętrznym,
- zabronić usunięcia płatności w Syrve generując jeden z wyjątków:
PaymentActionCancelledException— anulowanie usunięcia bez dodatkowych komunikatów (np. jeśli wtyczka wcześniej wyświetliła jakieś pytanie, a użytkownik wybrał anulowanie),PaymentActionFailedException— zakaz usunięcia z wyświetleniem komunikatu o błędzie (np. jeśli nie udało się anulować płatności w systemie zewnętrznym).
Na razie działa to tylko przy próbie usunięcia z ekranu płatności. Wywołanie metody OnPaymentDeleting podczas usuwania płatności przez API (DeleteExternalPaymentItem) zostanie zaimplementowane później.