def post(self, request, *args, **kwargs): """ Place an order. We fetch the txn details again and then proceed with oscar's standard payment details view for placing the order. """ error_msg = _( "A problem occurred communicating with PayPal " "- please try again later" ) try: self.payer_id = request.POST['payer_id'] self.token = request.POST['token'] except KeyError: # Probably suspicious manipulation if we get here messages.error(self.request, error_msg) return HttpResponseRedirect(reverse('basket:summary')) try: self.txn = fetch_transaction_details(self.token) except PayPalError: # Unable to fetch txn details from PayPal - we have to bail out messages.error(self.request, error_msg) return HttpResponseRedirect(reverse('basket:summary')) # Reload frozen basket which is specified in the URL basket = self.load_frozen_basket(kwargs['basket_id']) if not basket: messages.error(self.request, error_msg) return HttpResponseRedirect(reverse('basket:summary')) submission = self.build_submission(basket=basket) return self.submit(**submission)
def post(self, request, *args, **kwargs): """ Place an order. We fetch the txn details again and then proceed with oscar's standard payment details view for placing the order. """ if buyer_pays_on_paypal(): return HttpResponseBadRequest( ) # we don't expect any user here if we let users buy on PayPal try: self.payer_id = request.POST['payer_id'] self.token = request.POST['token'] except KeyError: # Probably suspicious manipulation if we get here messages.error(self.request, self.error_message) return redirect('basket:summary') try: self.txn = fetch_transaction_details(self.token) except PayPalError: # Unable to fetch txn details from PayPal - we have to bail out messages.error(self.request, self.error_message) return redirect('basket:summary') # Reload frozen basket which is specified in the URL basket = self.load_frozen_basket(kwargs['basket_id']) if not basket: messages.error(self.request, self.error_message) return redirect('basket:summary') submission = self.build_submission(basket=basket) return self.submit(**submission)
def get(self, request, *args, **kwargs): """ Fetch details about the successful transaction from PayPal. We use these details to show a preview of the order with a 'submit' button to place it. """ try: self.payer_id = request.GET["PayerID"] self.token = request.GET["token"] except KeyError: # Manipulation - redirect to basket page with warning message logger.warning("Missing GET params on success response page") messages.error(self.request, _("Unable to determine PayPal transaction details")) return HttpResponseRedirect(reverse("basket:summary")) try: self.txn = fetch_transaction_details(self.token) except PayPalError as e: logger.warning("Unable to fetch transaction details for token %s: %s", self.token, e) messages.error(self.request, _("A problem occurred communicating with PayPal - please try again later")) return HttpResponseRedirect(reverse("basket:summary")) # Reload frozen basket which is specified in the URL kwargs["basket"] = self.load_frozen_basket(kwargs["basket_id"]) if not kwargs["basket"]: logger.warning("Unable to load frozen basket with ID %s", kwargs["basket_id"]) messages.error(self.request, _("No basket was found that corresponds to your " "PayPal transaction")) return HttpResponseRedirect(reverse("basket:summary")) logger.info( "Basket #%s - showing preview with payer ID %s and token %s", kwargs["basket"].id, self.payer_id, self.token ) return super(SuccessResponseView, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs): """ Place an order. We fetch the txn details again and then proceed with oscar's standard payment details view for placing the order. """ error_msg = _( "Swamahani! on a eu un petit problème avec notre banque. Donc, nous n'avons rien pris sur votre compte bancaire. " "Essaie une autre fois car on règle ce problème avec notre Banque" ) try: self.payer_id = request.POST['payer_id'] self.token = request.POST['token'] except KeyError: # Probably suspicious manipulation if we get here messages.error(self.request, error_msg) return HttpResponseRedirect(reverse('basket:summary')) try: self.txn = fetch_transaction_details(self.token) except PayPalError: # Unable to fetch txn details from PayPal - we have to bail out messages.error(self.request, error_msg) return HttpResponseRedirect(reverse('basket:summary')) # Reload frozen basket which is specified in the URL basket = self.load_frozen_basket(kwargs['basket_id']) if not basket: messages.error(self.request, error_msg) return HttpResponseRedirect(reverse('basket:summary')) submission = self.build_submission(basket=basket) return self.submit(**submission)
def get(self, request, *args, **kwargs): """ Fetch details about the successful transaction from PayPal. We use these details to show a preview of the order with a 'submit' button to place it. """ try: self.payer_id = request.GET['PayerID'] self.token = request.GET['token'] except KeyError: # Manipulation - redirect to basket page with warning message logger.warning("Missing GET params on success response page") messages.error( self.request, _("Unable to determine PayPal transaction details")) return HttpResponseRedirect(reverse('basket:summary')) try: self.txn = fetch_transaction_details(self.token) except PayPalError, e: logger.warning( "Unable to fetch transaction details for token %s: %s", self.token, e) messages.error( self.request, _("A problem occurred communicating with PayPal - please try again later")) return HttpResponseRedirect(reverse('basket:summary'))
def get(self, request, *args, **kwargs): """ Fetch details about the successful transaction from PayPal. We use these details to show a preview of the order with a 'submit' button to place it. """ try: self.payer_id = request.GET['PayerID'] self.token = request.GET['token'] except KeyError: # Manipulation - redirect to basket page with warning message logger.warning("Missing GET params on success response page") messages.error(self.request, _("Unable to determine PayPal transaction details")) return HttpResponseRedirect(reverse('basket:summary')) try: self.txn = fetch_transaction_details(self.token) except PayPalError as e: logger.warning( "Unable to fetch transaction details for token %s: %s", self.token, e) messages.error( self.request, _("A problem occurred communicating with PayPal - please try again later" )) return HttpResponseRedirect(reverse('basket:summary')) # Reload frozen basket which is specified in the URL kwargs['basket'] = self.load_frozen_basket(kwargs['basket_id']) if not kwargs['basket']: logger.warning("Unable to load frozen basket with ID %s", kwargs['basket_id']) messages.error( self.request, _("No basket was found that corresponds to your " "PayPal transaction")) return HttpResponseRedirect(reverse('basket:summary')) logger.info( "Basket #%s - showing preview with payer ID %s and token %s", kwargs['basket'].id, self.payer_id, self.token) basket = self.load_frozen_basket(kwargs['basket_id']) if not basket: messages.error(self.request, error_msg) return HttpResponseRedirect(reverse('basket:summary')) submission = self.build_submission(basket=basket) return self.submit(**submission)
def get(self, request, *args, **kwargs): """ Fetch details about the successful transaction from PayPal. We use these details to show a preview of the order with a 'submit' button to place it. The preview step can be skipped with `PAYPAL_BUYER_PAYS_ON_PAYPAL=True` inside settings. """ try: self.payer_id = request.GET['PayerID'] self.token = request.GET['token'] except KeyError: # Manipulation - redirect to basket page with warning message logger.warning("Missing GET params on success response page") messages.error(self.request, _("Unable to determine PayPal transaction details")) return redirect('basket:summary') try: self.txn = fetch_transaction_details(self.token) except PayPalError as e: logger.warning( "Unable to fetch transaction details for token %s: %s", self.token, e) messages.error(self.request, self.error_message) return redirect('basket:summary') # Reload frozen basket which is specified in the URL kwargs['basket'] = self.load_frozen_basket(kwargs['basket_id']) if not kwargs['basket']: logger.warning("Unable to load frozen basket with ID %s", kwargs['basket_id']) messages.error( self.request, _("No basket was found that corresponds to your PayPal transaction" )) return redirect('basket:summary') if buyer_pays_on_paypal(): return self.submit(**self.build_submission( basket=kwargs['basket'])) logger.info( "Basket #%s - showing preview with payer ID %s and token %s", kwargs['basket'].id, self.payer_id, self.token) return super(SuccessResponseView, self).get(request, *args, **kwargs)
def fetch_paypal_data(self, payer_id, token): self.payer_id = payer_id self.token = token self.txn = fetch_transaction_details(token)
def perform_action(self): self.txn = fetch_transaction_details(self.token)
def fetch_paypal_data(self, payer_id, token): self.payer_id = payer_id self.token = token self.txn = fetch_transaction_details(token)
def get(self, request, *args, **kwargs): """ Fetch details about the successful transaction from PayPal. We use these details to show a preview of the order with a 'submit' button to place it. """ # wir pruefen ob schon eine Order mit der basket_id gibt, wenn ja # ist dies ein Hinweis auf einen PayPal Error (10486) try: order = Order.objects.get(basket_id=kwargs["basket_id"]) except Order.DoesNotExist: order = None try: self.payer_id = request.GET['PayerID'] self.token = request.GET['token'] except KeyError: # Manipulation - redirect to basket page with warning message logger.warning("Missing GET params on success response page") messages.error(self.request, _("Unable to determine PayPal transaction details")) return HttpResponseRedirect(reverse('basket:summary')) try: self.txn = fetch_transaction_details(self.token) except PayPalError as e: logger.warning( "Unable to fetch transaction details for token %s: %s", self.token, e) messages.error( self.request, _("A problem occurred communicating with PayPal - please try again later" )) if not order: # keine Order -> Basket return HttpResponseRedirect(reverse('basket:summary')) else: # order -> Order return HttpResponseRedirect( reverse('customer:order', kwargs={"order_number": order.number})) if order: # redirect to handle_paypal_payment return HttpResponseRedirect( reverse('paypal-handle-payment', kwargs={ "order_number": order.number, "payer_id": self.payer_id, "token": self.token, "amount": self.txn.amount, "currency": self.txn.currency, })) # Reload frozen basket which is specified in the URL kwargs['basket'] = self.load_frozen_basket(kwargs['basket_id']) if not kwargs['basket']: logger.warning("Unable to load frozen basket with ID %s", kwargs['basket_id']) messages.error( self.request, _("No basket was found that corresponds to your " "PayPal transaction")) return HttpResponseRedirect(reverse('basket:summary')) logger.info( "Basket #%s - showing preview with payer ID %s and token %s", kwargs['basket'].id, self.payer_id, self.token) return super(SuccessResponseView, self).get(request, *args, **kwargs)
def perform_action(self): self.txn = fetch_transaction_details(self.token)
def fetch_paypal_data(self, payer_id, token): self.payer_id = payer_id self.token = token self.txn = fetch_transaction_details(token, **self.get_gateway_kwargs())