merge payment branch to master

@evoevodin Please check it
Maybe would be better to use EnvironmentContext to get user id? WDYT?