修正重复支付的问题

支付宝更新系统支付状态有两种方式：

1. 页面 done 更新（不一定会触发，用户可能跳转到 done 页面之前就关闭浏览器）
1. 后台 notify 更新（一定会触发）

这样就会有可能两次调用 order.pay! 方法，导致 StateMachine::InvalidTransition 异常。

所以得在调用 pay! 方法之前确保订单当前处理 pending 状态。

另两个与支付相关的修正由于比较紧急，没有提交 PR，这里列出来

df55d6d7ad260fe38737855f856e94134495930c
d2de66452dacdfa830dc6d5353ff2fbfcd36f8b3