UniverseUniversity


Home Projects Jobs Clientele Contact

uu


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: UU Courses and classes



ACK.

Alexey Parshin wrote:
> So, as far as I understand, we agreed on:
>
> 1) Storing payments and idea of the balance. Still to be discussed:
> refunds.
>
> 2) Three-stage subscription.
>
> 3) No admission application.
>
> 4) Storing everything within one DB.
>
> If this is confirmed, I can start developing these things. However,
> more questions yet to come :)
>
> 2007/6/6, Ilya A. Volynets-Evenbakh < ilya@total-knowledge.com
> <mailto:ilya@total-knowledge.com>>:
>
>
>     Alexey Parshin wrote:
>     >
>     > If any class admin can add other user to the class - does it
>     mean that
>     > payment is optional?
>     Yes, if admin explicitly adds student to his class, payment is
>     bypassed.
>     Now, this does
>     create a strange situation, if class owners pay to the course owners
>     some percentage
>     (this allows bypassing of our payment system). Perhaps it should
>     be OK,
>     and course owners
>     would be only getting percentage of what comes through our payment
>     system. We cannot
>     control what goes on outside anyways.
>     > We have to think seriously on what admin can do with users if it
>     > involves money.
>     > Some examples:
>     > a) Admin includes a student into a class. The class enrollment price
>     > should/can be written off the student account, or it doesn't make
>     > sense. If the class enrollment price is zero, then it isn't an
>     issue.
>     Of course it doesn't make sense. If admin enrolls a student (if we
>     decide we allow it), he gets in free.
>     > b) Admin removes a student from the class. The enroll or tuition
>     money
>     > should/can be refunded to the student unless this is a disciplinary
>     > action.
>     Interesting idea. It's possible that student should be
>     auto-refunded in
>     that case, but creates
>     problems for us (once payments were made, we don't have those money in
>     our control).
>     >
>     > This suggests that we may need 'user account' support. It may be
>     > implemented as some extension of person_list table plus
>     > charges_history and payment_history or something similar.
>     >  It may make sense to allow a user select several things he
>     wants to
>     > subscribe on (like a basket in online stores), then collect a single
>     > payment, and subscribe on the order things upon confirmation.
>     Could be done. I'd probably lean towards paypal model in this case
>     though - i.e. user does have an account,
>     and can have balance, but anything he obtains should be paid for
>     immediately (either through withdrowing
>     from existing balance, or by adding immediate payment to said balance
>     and withdrawing from it).
>     >
>     >     Students:
>     >     1. Anyone who passes class sign-up rules  becomes a student
>     >
>     >
>     > The idea of application is only applicable for the case, when
>     someone
>     > may review that application and accept or decline it. The
>     reasons may
>     > differ.. Like the class is too full, or someone has bad
>     reputation, etc..
>     That is why we shall have moderation (i.e. forceful removal), but no
>     applications for admission.
>     >
>     >     > 4) How we are going to verify the payment? I suspect that
>     payments
>     >     > should be processed by some online system. Do we have such
>     >     system in mind?
>     >     Yes. It's real-time credit card processing. Details outside
>     of the
>     >     list,
>     >     if you really want them now.
>     >
>     >
>     > If you're going to call a subscription stored proc with the
>     > _confirmed_ payment amount - then I don't need details. I only think
>     > that we need to do it through several steps:
>     > a) The subscription is tested and reserved in the stored proc. The
>     > place in class is assigned but marked as 'unconfirmed' or just
>     > expired. The id in group and payment amount are returned
>     > b) The payment is processed (outside of my scope). If payment is
>     > unsuccessful the record created in a) is removed and the process
>     > interrupted.
>     > c) The subscription confirmation proc is called with the amount. The
>     > student is confirmed and his place in class is marked as 'confirmed'
>     > or expiration date is set properly.
>     Sounds good so far.
>     >
>     >     > 5) We need some structure to store the payment
>     information. At the
>     >     > very least, it should include references to {person, object of
>     >     > payment}, date, amount, payment method, confirmation?
>     >     Yes. We might, however, store it in separate database, for
>     security
>     >     reasons. I'm open
>     >     to suggestions on this one.
>     >
>     >
>     > The payment referrential integrity is really important. I'd
>     prefer to
>     > keep all the payments in the same database, but limit the access to
>     > these data to db owner, special accountant role and special stored
>     > procs. Nobody but db owner and accountant would have select
>     > permissions on these data, and stored procs would be allow per-user
>     > access.
>     OK. I guess with our permissions system this should be safe enough. In
>     any case we will never
>     store actual CC info - just the amounts, and perhaps payment
>     references.
>
>     --
>     Ilya A. Volynets-Evenbakh
>     Total Knowledge. CTO
>     http://www.total-knowledge.com
>
>
>
>
> -- 
> Alexey Parshin,
> http://www.sptk.net 

-- 
Ilya A. Volynets-Evenbakh
Total Knowledge. CTO
http://www.total-knowledge.com


Authoright © Total Knowledge: 2001-2008