示例#1
0
def complete(request, donation_id):
    donation = get_object_or_404(Donation, pk=donation_id)
    donation.status_code = AmazonActionStatus.get_from_code(request.GET.get('status'))
    
    if donation.status_code is AmazonActionStatus.SUCCESS:
        team = donation.offer.team
        recipients = Recipient.objects.filter(team=team)
        recipientTokenId = recipients[0].recipient_token_id
        
        try:
            connection = get_fps_connection()
            transactionAmount = donation.offer.donation
            connection.pay(RecipientTokenId=recipientTokenId, TransactionAmount=transactionAmount,
                           SenderTokenId=request.GET.get('tokenID'), ChargeFeeTo='Caller',
                           MarketplaceVariableFee='5')
            
            donation.sender_token_id = request.GET.get('tokenID')
            state = DonationState.FINISHED
            trigger_backend_task('/spudder/synchronise_sponsorship_data_from_donation/%s' % donation.id)
            redirect_to = '/dashboard/donation/%s/thanks' % donation_id
        except Exception, e:
            state = DonationState.TERMINATED
            donation.status_code = AmazonActionStatus.SE
            donation.error_message = e
            redirect_to = '/dashboard/donation/%s/error' % donation_id
示例#2
0
def complete(request, donation_id):
    donation = get_object_or_404(Donation, pk=donation_id)
    donation.status_code = AmazonActionStatus.get_from_code(
        request.GET.get('status'))

    if donation.status_code is AmazonActionStatus.SUCCESS:
        team = donation.offer.team
        recipients = Recipient.objects.filter(team=team)
        recipientTokenId = recipients[0].recipient_token_id

        try:
            connection = get_fps_connection()
            transactionAmount = donation.offer.donation
            connection.pay(RecipientTokenId=recipientTokenId,
                           TransactionAmount=transactionAmount,
                           SenderTokenId=request.GET.get('tokenID'),
                           ChargeFeeTo='Caller',
                           MarketplaceVariableFee='5')

            donation.sender_token_id = request.GET.get('tokenID')
            state = DonationState.FINISHED
            trigger_backend_task(
                '/spudder/synchronise_sponsorship_data_from_donation/%s' %
                donation.id)
            redirect_to = '/dashboard/donation/%s/thanks' % donation_id
        except Exception, e:
            state = DonationState.TERMINATED
            donation.status_code = AmazonActionStatus.SE
            donation.error_message = e
            redirect_to = '/dashboard/donation/%s/error' % donation_id
示例#3
0
def complete(request, team_id):
    team = get_team(team_id)
    recipient = get_or_create_recipient(team, request.user)
    recipient.status_code = AmazonActionStatus.get_from_code(
        request.GET.get('status'))
    recipient.max_fee = 10

    if recipient.status_code is AmazonActionStatus.SUCCESS:
        result = save_team_is_recipient(team_id)

        if not result:
            state = RecipientRegistrationState.TERMINATED
            recipient.status_code = AmazonActionStatus.SPUDDER_SAVE_FAILED
            redirect_to = '/dashboard/recipient/%s/error' % team_id
        else:
            state = RecipientRegistrationState.FINISHED
            recipient.recipient_token_id = request.GET.get('tokenID')
            recipient.refund_token_id = request.GET.get('refundTokenID')
            redirect_to = '/dashboard/recipient/%s/thanks' % team_id
    else:
        state = RecipientRegistrationState.TERMINATED
        redirect_to = '/dashboard/recipient/%s/error' % team_id

    recipient.state = state
    recipient.save()

    return HttpResponseRedirect(redirect_to)
示例#4
0
def complete(request, team_id):
    team = get_team(team_id)
    recipient = get_or_create_recipient(team, request.user)
    recipient.status_code = AmazonActionStatus.get_from_code(request.GET.get('status'))
    recipient.max_fee = 10

    if recipient.status_code is AmazonActionStatus.SUCCESS:
        result = save_team_is_recipient(team_id)

        if not result:
            state = RecipientRegistrationState.TERMINATED
            recipient.status_code = AmazonActionStatus.SPUDDER_SAVE_FAILED
            redirect_to = '/dashboard/recipient/%s/error' % team_id
        else:
            state = RecipientRegistrationState.FINISHED
            recipient.recipient_token_id=request.GET.get('tokenID')
            recipient.refund_token_id=request.GET.get('refundTokenID')
            redirect_to = '/dashboard/recipient/%s/thanks' % team_id
    else:
        state = RecipientRegistrationState.TERMINATED
        redirect_to = '/dashboard/recipient/%s/error' % team_id

    recipient.state = state
    recipient.save()

    return HttpResponseRedirect(redirect_to)
示例#5
0
def rent_complete(request, venue_id):
    venue = get_object_or_404(Venue, pk=venue_id)

    rent_venue, _ = RentVenue.objects.get_or_create(venue=venue)
    rent_venue.status_code = AmazonActionStatus.get_from_code(
        request.GET.get('status'))

    if rent_venue.status_code is AmazonActionStatus.SUCCESS:
        recipients = VenueRecipient.objects.filter(groundskeeper=venue.student)
        recipient_token_id = recipients[0].recipient_token_id

        try:
            connection = get_fps_connection()
            transaction_amount = venue.price
            venue_ipn_url = get_rent_venue_ipn_url(venue, request.user)

            connection.pay(RecipientTokenId=recipient_token_id,
                           TransactionAmount=transaction_amount,
                           SenderTokenId=request.GET.get('tokenID'),
                           ChargeFeeTo='Caller',
                           MarketplaceVariableFee='50',
                           OverrideIPNURL=venue_ipn_url)

            rent_venue.sender_token_id = request.GET.get('tokenID')

            if not request.user.is_authenticated():
                redirect_to, state = _pending_rental_logic(request, venue)
            elif request.current_role.entity_type is not RoleController.ENTITY_SPONSOR:
                # We need to check if currently used role is a Sponsor, because users can rent Venues with different
                # roles but already have the Sposnor role assigned, but not activated
                redirect_to, state = _pending_rental_logic(request, venue)
            else:
                try:
                    state = DonationState.FINISHED
                    sponsor_page = SponsorPage.objects.get(
                        sponsor=request.user)
                    venue.renter = sponsor_page
                    venue.save()
                    redirect_to = '/venues/rent_venue/%s/thanks' % venue.pk
                except SponsorPage.DoesNotExist:
                    # Missing Sponsor page means that in the past something went wrong while finalizing transaction
                    # and Sponsor profile wasn't created. In that case the only way is to create Sponsor profile again.
                    redirect_to, state = _pending_rental_logic(request, venue)
        except Exception, e:
            state = DonationState.TERMINATED
            rent_venue.status_code = AmazonActionStatus.SE
            rent_venue.error_message = e
            redirect_to = '/venues/rent_venue/%s/error' % venue.pk
示例#6
0
def rent_complete(request, venue_id):
    venue = get_object_or_404(Venue, pk = venue_id)

    rent_venue, _ = RentVenue.objects.get_or_create(venue=venue)
    rent_venue.status_code = AmazonActionStatus.get_from_code(request.GET.get('status'))

    if rent_venue.status_code is AmazonActionStatus.SUCCESS:
        recipients = VenueRecipient.objects.filter(groundskeeper=venue.student)
        recipient_token_id = recipients[0].recipient_token_id

        try:
            connection = get_fps_connection()
            transaction_amount = venue.price
            venue_ipn_url = get_rent_venue_ipn_url(venue, request.user)

            connection.pay(
                RecipientTokenId=recipient_token_id,
                TransactionAmount=transaction_amount,
                SenderTokenId=request.GET.get('tokenID'),
                ChargeFeeTo='Caller',
                MarketplaceVariableFee='50',
                OverrideIPNURL=venue_ipn_url
            )

            rent_venue.sender_token_id = request.GET.get('tokenID')

            if not request.user.is_authenticated():
                redirect_to, state = _pending_rental_logic(request, venue)
            elif request.current_role.entity_type is not RoleController.ENTITY_SPONSOR:
                # We need to check if currently used role is a Sponsor, because users can rent Venues with different
                # roles but already have the Sposnor role assigned, but not activated
                redirect_to, state = _pending_rental_logic(request, venue)
            else:
                try:
                    state = DonationState.FINISHED
                    sponsor_page = SponsorPage.objects.get(sponsor=request.user)
                    venue.renter = sponsor_page
                    venue.save()
                    redirect_to = '/venues/rent_venue/%s/thanks' % venue.pk
                except SponsorPage.DoesNotExist:
                    # Missing Sponsor page means that in the past something went wrong while finalizing transaction
                    # and Sponsor profile wasn't created. In that case the only way is to create Sponsor profile again.
                    redirect_to, state = _pending_rental_logic(request, venue)
        except Exception, e:
            state = DonationState.TERMINATED
            rent_venue.status_code = AmazonActionStatus.SE
            rent_venue.error_message = e
            redirect_to = '/venues/rent_venue/%s/error' % venue.pk
示例#7
0
def complete(request, venue_id):
    venue = Venue.objects.get(pk=venue_id)
    venue_recipient, _ = VenueRecipient.objects.get_or_create(groundskeeper = venue.student)
    venue_recipient.status_code = AmazonActionStatus.get_from_code(request.GET.get('status'))
    venue_recipient.max_fee = 50

    if venue_recipient.status_code is AmazonActionStatus.SUCCESS:
        state = RecipientRegistrationState.FINISHED
        venue_recipient.recipient_token_id=request.GET.get('tokenID')
        venue_recipient.refund_token_id=request.GET.get('refundTokenID')
        redirect_to = '/venues/recipient/%s/thanks' % venue_id
    else:
        state = RecipientRegistrationState.TERMINATED
        redirect_to = '/venues/recipient/%s/error' % venue_id

    venue_recipient.state = state
    venue_recipient.save()

    return HttpResponseRedirect(redirect_to)
示例#8
0
def complete(request, venue_id):
    venue = Venue.objects.get(pk=venue_id)
    venue_recipient, _ = VenueRecipient.objects.get_or_create(
        groundskeeper=venue.student)
    venue_recipient.status_code = AmazonActionStatus.get_from_code(
        request.GET.get('status'))
    venue_recipient.max_fee = 50

    if venue_recipient.status_code is AmazonActionStatus.SUCCESS:
        state = RecipientRegistrationState.FINISHED
        venue_recipient.recipient_token_id = request.GET.get('tokenID')
        venue_recipient.refund_token_id = request.GET.get('refundTokenID')
        redirect_to = '/venues/recipient/%s/thanks' % venue_id
    else:
        state = RecipientRegistrationState.TERMINATED
        redirect_to = '/venues/recipient/%s/error' % venue_id

    venue_recipient.state = state
    venue_recipient.save()

    return HttpResponseRedirect(redirect_to)