Please note that revenue received before the service is provided is properly accounted for as "Prepaid Services" (or some such account name indicating your customer has paid you for services you have yet to provide). This is a balance sheet liability account, since you owe the customer the services they have already paid for. It is not a P&L item - or not yet, anyway. We'll look at the discount part of this in a moment.
Let's say you sell an annual subscription for $1,200 on January 1. You should post $1,200 to the Prepaid Services account on January 1. By January 31, you will have provided the customer $100 worth of the service they bought. Now you can reduce the Prepaid Services liability account by $100, and recognize $100 of revenue. On Feb 28, you have provided another month of services, so you again reduce the Prepaid Services by $100 and recognize $100 of revenue, etc., until on Dec 31 you have provided all of the services paid for, that customer's Prepaid Services balance is zero and you have recognized all $1,200 of revenue on you P&L.
I know, it seems a bit screwy, but it is logical and does have the advantage of knowing how much more service you have yet to deliver...and when to start warming the customer up for a renewal, perhaps at a slightly higher price. It may also mean you have a little less taxable revenue.
As to the discount, you should post that as part of each transaction. Let's say you usually sell the product for $1,320, and are giving a $120 discount, so you will receive $1,200 all told on January 1. To be really correct, you should set up accounts to keep track of the discount, and record $110 revenue and a $10 discount (a reduction of revenue) on the P&L each month. But if this is a one-off, and keeping track of how much you are discounting your product isn't a significant matter, it would be OK (if not totally GAAP compliant) to just record the $1,200 and the monthly $100 transactions. IF this a your regular way of going about things, then you really do need to set up the accounts to record the discount.