Example #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
Example #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
Example #3
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
Example #4
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