互联网支付现在真够麻烦的,比如我在网上卖个东西,需要很繁琐的手续,当然一方面也是为了保护用户。但是对于价值很低的产品,比如手机验证码,1块钱以内的东西,客户也不愿意走这么多流程,想直接支付,然后获取响应的虚拟服务就完事了。比特币是一个很好的思路,但是比特币现在价值比较高,汇率也不稳定,而且有可能还会有手续费,最主要的时还要等待,也比较麻烦,再说,客户也不一定有比特币。支付宝是一个很好的方法,用户基数大,即时到帐。但是支付宝要开通网上支付也很繁琐,一般小屌丝不一定能开通的了。好在支付宝有个转账功能,我们可以通过这个转账功能实现自动收款。流程如下:

# STEP1:公布支付地址

我们的支付宝账号是:okpayed@gmail.com,您可以用支付宝转账给我们,或者用支付宝手机客户端扫描下面的二维码:

测试支付宝二维码

# STEP2:客户支付

我们不管客户用什么方式,网页也好,客户端也好。客户向我们的账号转账,这一步是即时到帐的。

# STEP3: 我们检测支付宝给我们发的转账通知邮件

好在gmail支持IDLE命令,类似push mail,只要支付宝一发邮件,我们立刻就能收到通知,但是测试过程中明显感觉到支付宝的邮件通知比较慢,延迟比较大,大概有3-5分钟,而手机提醒确非常快,或许是故意的吧。不过对于一般的人,这几分钟应该也能接受,支付宝邮件里面有整个转账的内容:

支付宝提醒邮件

我们的系统收到google的push mail,就能得到交易号和对应的转账金额,入库。

# STEP4:请求用户输入交易号

由于交易号是唯一的,而且不容易伪造,所以我们可以通过用户输入的交易号来判定该用户是否充值成功。

# 总结

整个流程,唯一需要等待的,估计是等待支付宝给我们发支付邮件的时间。这个我们不能控制,完全在于支付宝。需要注意的问题有:

  1. 支付宝网页版是需要手续费的,这个要提醒用户
  2. 由于有几分钟延迟,需要提醒用户,不要重复充值
  3. 支付宝不能绑定手机,否则支付宝就只向手机发短信,而不发邮件了。参考AA收款创建之后,会通知对方吗?
  4. 对于没有实名认证的用户,支付宝每天有转账限额,大概是2k以内,对于屌丝网站,一天赚2k,也不错了。如果流水实在太多,可以考虑对用户,按照用户名首字母分配支付账户,等等,类似数据库分表。

# 2014年10月12日13:25:58 update

腾讯企业邮箱也是支持idle指令的,效果不错:

openssl s_client -connect imap.exmail.qq.com:993 -crlf
 tag login xxx@yy.com password
 tag select inbox
 tag idle

配置 /tools/alipay.html效果不错