为什么最近支付宝支付被限制(支付宝支付居然被利用了)
你的APP有用到支付宝支付吗?有没有遇到过支付链接被不法分子利用呢?本文主要分享了一次支付宝APP支付链接被不法分子利用的经历。
一、背景某日,经客服反馈,有部分用户在某APP上购买商品,最终发现被骗了,而收款账户是我们APP的支付宝账号。
经排查,发现用户反馈的订单基本都为购买大额购物卡(100元、200元),有些订单甚至是多张一起购买。
经分析,发现此类订单都有共同特点,就是下单时间和支付时间相隔比较长,正常的用户支付行为应该能在30秒内完成,而这些订单的支付时长在3分钟~30分钟不等,反向排查这些订单的用户,发现这些用户订单有以下特点:
1.都是大额购物卡
2.支付时长都比较长(远超30秒)
3.都是支付宝订单,没有微信订单
由此可分析出这些用户是有问题的。
补充一下业务:用户在我们APP下单购物卡,支付成功后系统会直接将购物卡卡密发送给用户账号,用户拿到卡密就可以进行兑换购物卡
二、问题重现1.使用用户A进行支付宝下单(未支付)
2.获取支付链接
3.给到APP前端同事使用任意APP进行支付
4.果然,可以进行支付,并且支付完成后触发系统给用户A进行卡密发放
三、诈骗流程
流程说明:
1.骗子在某知名APP挂商品
2.用户在某知名APP想购买该商品,进行下单
3.骗子故意说辞需要加V,私下发链接进行购买
4.用户访问钓鱼网站并完成支付(防骗指南:请勿相信陌生人的私链)
5.卡密发放至骗子账户,骗子可以取到卡密进行兑换
支付链接是后端返回给前端的,用于调起支付宝进行支付,支付链接样例:
alipay_sdk=alipay-sdk-java-3.4.49.ALL&app_id=2022001116633522&biz_content={"body":"testorder","out_trade_no":"205546307409489920","subject":"testorder-subject","total_amount":"0.01"}&charset=UTF-8&format=json&method=alipay.trade.app.pay¬ify_url=https://api.domain.com/api/callback/alipay/&sign=hdZMVVmslawvRMDKwIX+cj+eSKHrIn7Zna5ngQt0rYgtPladQmAmdOILsNeIMCFv7ZFRVLIvjWNwsYiOxKxYdbo/RnR6JMbK7PSJg+CAjTZQYR5abcU/q1eL0cjuwbtHwAC9qLBF7B95XYHeJkwwxZgK903Eb9vRyJCw6fTl7egnL3ceRphqC315gajxSzf0UkefxrWjIu55ov8zYd1wdZQ64jsJjS9y0Bh1iW5qWBXNq0lOU8VXLdg2vXUycOJs9wLP7Uv2ob/Kmcy5DxfrPh4A9DNllwwKKwhVqPbGqQgwqArQh2hjy0FyYDQ9+/wbylG97Au6lqHlbP4GtMQVEw==&sign_type=RSA2×tamp=2020-12-30 09:26:51&version=1.0
四、解决方案支付宝APP支付官方文档: https://opendocs.alipay.com/open/02e7gq?scene=20&ref=api
1.方案一
支付宝下单使用参数ext_user_info.need_check_info来强制校验买家信息。但是这种做法需要依赖系统可以获取买家姓名。
2.方案二(我们采用了这种方式来处理,因为我们无法校验买家信息)
支付宝下单使用参数time_expire(建议配置30秒,可根据实际情况调整)来缩短支付链接有效时间。支付宝是支持同一订单号多次下单的,每次使用新的time_expire来下单接口可以续有效时间。通过功能来实现支付链接的刷新。
经后续观察分析,骗子订单基本都被限制了,因为骗子整个操作流程在30秒内完成不了,给到用户的支付链接在用户支付时会提示“支付链接已过期”。
五、疑惑1.这种骗术适用于哪些场景?
购买没有物流的虚拟物品,比如购物卡、充值之类的
2.为什么微信支付不会被利用?(希望了解的朋友给个留言)
初步猜测是因为微信支付是先下单,后响应支付参数,真正支付的时候会校验当前APP的appid是否与下单的一致。而支付宝的支付链接是组装出来的,并没有真正的下单。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com