A abstract layer for In-App purchase