Больше подробностей о неуспешной оплате
[v8preview7
v8
]
В API V8Preview7 стало еще удобнее анализировать ошибки оплаты.
Методы PayOrder
и PayOrderAndPayOutOnUser
могут генерировать эксепшн PaymentActionFailedException
в случае, если при обработке оплаты возникла ошибка.
При этом в распоряжении разработчиков плагинов было только сообщение об ошибке
Exception.Message
,
с которым неудобно работать и классифицировать.
В новой версии в PaymentActionFailedException
было добавлено свойство Reason
— классифицируемая причина ошибки, которая не может быть null
, если эксепшн был выброшен из методов PayOrder
или PayOrderAndPayOutOnUser
.
При этом Reason
может принимать такие значения 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,
}
Из которых только
OrderBillOperationFailed
,PaymentsProcessingCanceled
,PaymentsProcessingFailed
,BeforeDoChequeOperationFailed
,ChequeTaskProcessorFailed
,CashRegisterOperationFailed
имеют указанное новое свойство PaymentActionFailedException.Details
,
в котором будет сообщение эксепшена, генерируемое другим плагином в