defensive commit
now only call stripe api if the subscription has indeed changed