take apart the phone yourself, or pay the fee for apple to fix it. if you have warranty, it might cover it, but im not sure.
apple says it is caused by dropping the phone repeatedly, which is pretty likely. a issue like that sounds like something thats caused by dropping/scratching/wetting the device.
then again, apple is pretty unreliable imo.
there isn't much you can do besides buy a new phone, pay the $150 to fix it, or try to fix it yourself. the last option can be pretty risky as well, unless you have an experienced friend or something