refactor weixin sdk