def process_pay_req(request, data=None): data = request.GET if data is None else data form = VerifyForm(data) if not form.is_valid(): codes = [] for erlist in form.errors.values(): codes.extend(erlist) if len(codes) > 1: # This will probably break something, like maybe paymentFailed(). log.error('multiple error codes: {codes}'.format(codes=codes)) codes = ', '.join(codes) return app_error(request, code=codes) if (disabled_by_user_agent(request.META.get('HTTP_USER_AGENT', None)) or (settings.ONLY_SIMULATIONS and not form.is_simulation)): return custom_error(request, _('Payments are temporarily disabled.'), code=msg.PAY_DISABLED, status=503) exc = er = None try: pay_req = verify_jwt( form.cleaned_data['req'], settings.DOMAIN, # JWT audience. form.secret, required_keys=( 'request.id', 'request.pricePoint', # A price tier we'll lookup. 'request.name', 'request.description', 'request.postbackURL', 'request.chargebackURL')) except RequestExpired, exc: er = msg.EXPIRED_JWT
def process_pay_req(request, data=None): data = request.GET if data is None else data form = VerifyForm(data) if not form.is_valid(): codes = [] for erlist in form.errors.values(): codes.extend(erlist) if len(codes) > 1: # This will probably break something, like maybe paymentFailed(). log.error('multiple error codes: {codes}'.format(codes=codes)) codes = ', '.join(codes) return app_error(request, code=codes) if settings.ONLY_SIMULATIONS and not form.is_simulation: # Real payments are currently disabled. # Only simulated payments are allowed. return custom_error(request, _('Payments are temporarily disabled.'), code=msg.PAY_DISABLED, status=503) exc = er = None try: pay_req = verify_jwt( form.cleaned_data['req'], settings.DOMAIN, # JWT audience. form.secret, required_keys=('request.id', 'request.pricePoint', # A price tier we'll lookup. 'request.name', 'request.description', 'request.postbackURL', 'request.chargebackURL')) except RequestExpired, exc: er = msg.EXPIRED_JWT
def process_pay_req(request, data=None): data = request.GET if data is None else data form = VerifyForm(data) if not form.is_valid(): codes = [] for erlist in form.errors.values(): codes.extend(erlist) if len(codes) > 1: # This will probably break something, like maybe paymentFailed(). log.error('multiple error codes: {codes}'.format(codes=codes)) codes = ', '.join(codes) return app_error(request, code=codes) if (disabled_by_user_agent(request.META.get('HTTP_USER_AGENT', None)) or (settings.ONLY_SIMULATIONS and not form.is_simulation)): return custom_error(request, _('Payments are temporarily disabled.'), code=msg.PAY_DISABLED, status=503) exc = er = None try: pay_req = verify_jwt( form.cleaned_data['req'], settings.DOMAIN, # JWT audience. form.secret, algorithms=settings.SUPPORTED_JWT_ALGORITHMS, required_keys=('request.id', 'request.pricePoint', # A price tier we'll look up. 'request.name', 'request.description', 'request.postbackURL', 'request.chargebackURL')) except RequestExpired, exc: log.debug('exception in mozpay.verify_jwt(): {e}'.format(e=exc)) er = msg.EXPIRED_JWT
def process_pay_req(request, data=None): data = request.GET if data is None else data form = VerifyForm(data) if not form.is_valid(): codes = [] for erlist in form.errors.values(): codes.extend(erlist) if len(codes) > 1: # This will probably break something, like maybe paymentFailed(). log.error("multiple error codes: {codes}".format(codes=codes)) codes = ", ".join(codes) return app_error(request, code=codes) if disabled_by_user_agent(request.META.get("HTTP_USER_AGENT", None)) or ( settings.ONLY_SIMULATIONS and not form.is_simulation ): return custom_error(request, _("Payments are temporarily disabled."), code=msg.PAY_DISABLED, status=503) exc = er = None try: pay_req = verify_jwt( form.cleaned_data["req"], settings.DOMAIN, # JWT audience. form.secret, required_keys=( "request.id", "request.pricePoint", # A price tier we'll lookup. "request.name", "request.description", "request.postbackURL", "request.chargebackURL", ), ) except RequestExpired, exc: er = msg.EXPIRED_JWT
def api_error(form, request, **kw): user_message = _('There was an internal error processing your ' 'request. Try again or contact Mozilla if it ' 'persists.') if form.errors: codes = getattr(form, 'pin_error_codes', []) if len(codes): log.info('API form error codes: {e}'.format(e=codes)) # The UI only supports showing one error code at a time now so # let's pop them off until the request has no more errors. kw['code'] = codes.pop(0) return custom_error(request, user_message, **kw)