More details about pay fail
[ ]The V8Preview7 API has made it even more convenient to analyze payment errors.
Methods PayOrder and PayOrderAndPayOutOnUser
can generate an exception PaymentActionFailedException
in case an error occurred during payment processing.
At the same time, the plugin developers only had an error message at their disposal
Exception.Message,
which is inconvenient to work with and classify.
In the new version in PaymentActionFailedException
property has been added Reason
— classifiable error cause, which cannot be null if the exception was thrown from the PayOrder or PayOrderAndPayOutOnUser methods.
Wherein Reason
can take on the following values PaymentActionFailedExceptionReason:
/// <summary>
/// Reason for throwing <see cref="PaymentActionFailedException"/>.
/// </summary>
[PublicAPI]
public enum PaymentActionFailedExceptionReason
{
OrderNotFound,
CannotLockOrder,
OrderStatusIsNotOpened,
BanquetOrderNotSupported,
DeliveryOrderStatusIsUnconfirmed,
DeliveryOrderHasPurchases,
DeliveryOrderPrepayAndCloseOnDifferentTerminalNotSupported,
PayInTypeIsIncorrect,
PayOutTypeIsIncorrect,
PayOutOnUserFailed,
CafeSessionNotFound,
CashRegisterNotFound,
OnlyVirtualCashRegisterForPurchasesSupported,
UserNotFound,
UserPersonalSessionNotOpened,
NoUserPermissionsToPayAsWaiter,
NoUserPermissionsToPayOthersOrder,
NoUserPermissionsToApprovePointsAccural,
UserCashDrawerNotFound,
PaymentTypeNotSpecified,
PaymentTypeNotConfigured,
UncombinablePaymentTypes,
UncombinablePaymentTypesFiscalNonFiscal,
AutomaticPaymentTypeNotFound,
NotProcessedNotSilentPaymentsNotSupported,
PayOrderFailed,
CannotPrintOrder,
CannotEditStopList,
OrderBillOperationFailed,
PaymentsProcessingCanceled,
PaymentsProcessingFailed,
BeforeDoChequeOperationFailed,
ChequeTaskProcessorFailed,
CashRegisterOperationFailed,
MoreThanOnePaymentsWithChange,
ChangeSumEqualToPaymentsWithChangeSum,
ChangeSumGreaterThanPaymentsWithChangeSum,
PaymentSumNotEnough,
PaymentSumNotIntegral,
PaymentSumTooLarge,
CashForChangeNotEnough,
BillOrderBeforePayment,
SplitOrderBeforePayment,
CookingPlacesWithEmptyStores,
TimePayProductsInOrder,
ChequeSmsSendingNotSupported,
ChequeEmailSendingNotSupported,
ChequeSettlementPlaceNotSupported,
}
Of which only
OrderBillOperationFailed,PaymentsProcessingCanceled,PaymentsProcessingFailed,BeforeDoChequeOperationFailed,ChequeTaskProcessorFailed,CashRegisterOperationFailed
have the specified new property PaymentActionFailedException.Details,
which will contain an exception message generated by another plugin in