Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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)