归档 2014年4月1日

最后更新于 .

2015-4-3更新

1. 将原有分散的代码封装为通用库 ggpay,代码在: https://github.com/dantezhu/ggpay,也可以直接 pip install ggpay 进行安装,使用方法见 examples 的get_token。


最近在google play上线的应用内支付被人刷了,用户模拟发起了大量的支付请求,并且全部成功支付。搞得我最近茶饭不思。。今天总算是解决了,和大家分享一下。

我们客户端的支付实现步骤是:

1. app端调用google支付

2. 支付成功后,调用 自己服务器的发货接口,当然发货接口是做了签名校验的。

之所以在app端调用发货,是因为google貌似没有提供服务器端直接回调url的地方,所以才给了恶意用户模拟google返回的机会。

 

一开始我以为是我们自己的发货接口密钥被破解了,但是后来经过app上报,发现客户端是真实的走过了所有的google支付流程,即google的支付sdk真的返回了成功。

由于不清楚是因为google的密钥泄漏还是攻击者用别的方法实现,所以客户端这边已经没有办法确认是安全的了。

好在google是提供了查询订单的接口的: //developer.android.com/google/play/billing/gp-purchase-status-api.html ...

昨天

2014年1月12日

明天

2014年4月20日

归档