|Exceptions=
* [[UserPurchasePinValueNoMatchExceptionAuthenticationRequired]]--> If user Anonymous* [[UserPurchasePinValueNoMatch]] --> if user pin doesn't match or sent empty* [[InvalidPaymentType]] --> if paymentType = Unknown || (PaymentType not in product payment types)* [[UserDoesNotHaveMandatorySubscription]] --> If mandatory subscription is active, User has not purchase it, and user is trying to buy a product != MandatorySubscription* [[InvalidReturnOrCancelURL]] --> if paymentType = Paypal, webpay or worldpay and returnUrl or cancelURl empty or null* [[InsufficientBalance]] --> if (paymentType = eWallet) && (User.eWallet < Price)* [[ProductDoesNotExist]] --> if (product = null or product.ID <= 0)* [[UserAlreadyHasProduct]] --> if product has been already bought* [[InvalidPricingModelForThisProduct]] --> if pricingModel is not in the list of Available pricing models for this product* [[PendingProductCanNotBePurchased]] --> if product.CanWatch == -2 (Pending purchase)* [[ProductNotAvailableYet]] --> if (dateStart > DateTime.Now) Commercialization window has not begun* [[ProductExpired]] --> if (dateEnd < DateTime.Now) Commercialization window has finished* [[UserCantAcquire]] --> if canAquire = false (in this poing status != available in stock or no DeviceAvailability for current deviceType)* [[SubscriptionNotAvailableForPurchaseType]] --> if (ProductType == Subscription and PurchaseType.ProvisioningOnly)* [[WebpayIsntAvailableForRecurringPayment]] --> if paymentType = WebPay && PricingModel.IsRecurring* [[NoCreditsRegistered]] --> if productType == credit and productId doesn't exist* [[InvalidProductForInstance]] --> if productType == credit and credit belongs to other instance* [[InvalidPricingModel]] --> if (pricingModel == null || pricingModel.ID == 0) && (productType != ProductType.Credit)* [[InvalidPricingModelForThisProduct]] --> if pricingModel.instance != current instance* [[GenericError]] --> CreateInternalPurchase or createExternalPurchase SQL exception* [[PurchaseProcessFailed]] --> if PaymentType == Billing && OB synchronous mode && sync error* [[InvalidTransactionId]] --> if PaymentType == eWallet and error with transactionID* [[PurchaseNotFound]] --> if PaymentType == eWallet and error with purchase* [[InvalidInstance]] --> if instance != purchaseInstance (Can`t happen)* [[InvalidDeviceType]] --> if purchaseDeviceType != currentDeviceType (Can`t happen)* [[InvalidUser]] --> if purchaseUser != currentUser (Can`t happen)* [[UserRightInsertUpdateError]] --> Error insert userRights in BBDD
|Cache=