google支付被刷问题及服务端订单验证解决方案

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

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

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

1. app端调用google支付

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

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

 

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

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

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

实现的流程在文档中已经写的很清楚了,我这里就不赘述了。

判断的方法也很简单:

1. 判断是否购买成功

2. 判断返回 developerPayload 是否与传入的值一致。最好传入订单号,以防止重放攻击。

Google支付接入 目的 此教程用于指导在google play中发布一个崭新的应用时,如何测试新商品;以及在测试过程中可能遇到的问题及其解决方法。 测试设备 测试设备必须是拥有google service 和 google play的设备。 官方文档 https://developer.android.com/google/play/billing/api.html 如何创建一个应用 基本信息填写 在google... 阅读详情

相关推荐

google pay 配置sub/pub回调

google pay 推送

wujiesunlirong的博客 6980

google支付回调验证

原文链接: https://my.oschina.net/lemonzone2010/blog/398736 Google支付问题 20150218,挂机的日本服务器出现google支付单现象,虽然目前进行的修补,但是这个问题并没有完全从根源上解决。并且公司以前的GooglePlay支付也有不完善的地方,在SDK端给支付回调发送支付信息后,支付回调程序没有调用Google...

zdgdq的专栏 5828

google支付服务端订单验证PHP代码

关于google play支付交易订单服务端验证方法PHP版本demo

fableboy的学习点滴 1万+

Google Play支付校验

关于Google Play支付校验我之前在网上也找过大量的相关资料,发现大多数都是采用publicKey的方式来校验订单,但是在Google Play提供的官方实例中publicKey其实在客户端也是存在的,所以这种校验想要伪造其实是非常容易的,Google并未像Apple那样提供一个接口来校验订单的信息,但是提供了一个获取订单状态的接口,我们可以通过这个接口在GooglePlay服务器获取某个订...

weixin_33743248的博客 1928

Google Pay 应用已经发布成功,调起支付回调失败

问题描述 应用在Google Play上架成功,许可测试等配置也都配置完成,但是调起支付的时候,从初始化–>查询商品信息–>调支付都没问题,就是到支付回调的时候ResponseCode返回6,(BillingClient.BillingResponseCode.ERROR),支付不成功。调不起来支付弹窗。 解决办法 需要在权限设置里面,把google play的**允许应用在后台弹窗界面**这个权限打开。 ...

TLuffy的博客 1521

服务端验证Google Pay订单的两种方式

服务端验证Google Pay订单的两种方式

Jason_HD的博客 2万+

谷歌支付服务端服务账号订单校验

谷歌支付服务端服务账号订单校验整个开发背景是前端在调用完google play v3 支付流程后,需要后台验证支付结果以及在自己的服务生成订单相关信息。对于服务账号的文档搜了度娘对于这块的资料少,无从下手,踩了不少坑。网上的搜出来的大多数是针对OAuth 2.0 客户端 ID的验证,需要使用到refreshAccess,但是服务账号不一样,那不需要验签通过后直接能请求查询订单。用到的 maven 依赖jar包登录校验订单创建订单成功校验 整个开发背景是前端在调用完google play v3 支付流程后,需

weixin_43700984的博客 4287

2024年最新:服务端验证Google Pay订单的两种方式(使用Google Play Developer API)

服务端验证Google Pay订单的两种方式(使用Google Play Developer API)

Jason_HD的博客 7148

Google支付服务端验证

登录使用的api项目和查询支付使用的api项目是两个不同的项目相互不干扰,查询支付的api项目一个google play账号对应一个项目,这个google play账号中所有的应用,都可以通过这个查询支付的api项目去查询。将上面的{XX}替换成创建api项目时填写的重定向地址,和clientId,然后将连接放到浏览器中打开,就会吊起授权界面,使用你的开发者账号授权登录。google应用必须要在封闭测试状态下,并审核通过的应用才能支付,文档说的是内部测试就可以了,笔者每次都弄到封闭测试状态下才可以支付

youmangu的专栏 4306

Google play支付如何用nodejs验证订单完成的合法性

Google play支付如何用nodejs验证订单完成的合法性 const crypto = require('crypto'); // 把字符串分割为一连串更小的部分 function chunk_split(paramString, paramLength, paramEnd = '\n') { let p = []; let s = paramString; wh...

szc2000的博客 3788

Google内购 Java服务端(Springboot)校验订单详细流程

因为产品需要接入Google支付,这里记录一下进行Java服务端校验的过程。 一、 Google Pay主要支付流程 1.手机端向Java服务端发起支付,生成预订单,给手机端返回生成的订单号 2.手机端向Google发起支付(传入本地服务器生成的订单号) 3.Google服务器支付结果返回给手机端 4.手机端向Java服务端发送校验请求,校验通过后即可处理订单 二、前提条件 1.一台海外服务器(国内服务器请求Google服务器进行校验会出现请求超时的问题) 2.接入Google服务的手机客户端 3.浏览器

weder的博客 3640

Google Pay 服务端订单验证与安全策略

本文详细解析了Google Pay服务端订单验证与安全策略,重点介绍了双重校验机制(本地RSA签名验证Google API验证)的实现方法,以及订单状态解析、防重复消费、异常处理等关键环节。通过Java代码示例和最佳实践,帮助开发者构建安全可靠的支付集成系统,有效防范支付风险。

weixin_32576389的博客 303

Android Google Play 支付SDK接入指南

前端 这里要接入的是google应用内支付 1.在app模块下的build.gradle模块下引入最新版本google billing 4.0版本,顺便引入google服务,如下 implementation 'com.google.android.gms:play-services-wallet:19.0.0' implementation 'com.android.support:appcompat-v7:24.1.1' implementation 'com.android.b

路漫漫其修远兮,吾将上下而求索 1万+

java 服务端接入Google play 结算

google play 结算是用于应用内的虚拟商品支付(与google pay api是有区别的),发起支付与付款流程有app端完成。用户在app端支付完后,会返回购买token给app,app将对应参数传给服务端接口,服务端请求google api 查询购买产品(服务端需要提供给app端接口有2个:创建自己系统的订单、app端支付完后验证支付状态并处理购买交易。app端购买商品时传入商户订单id,使商户系统订单id与google 产生对应关系。2.用户选择商品,app请求服务端生成创建商户订单

lxl_family的专栏 4259

google play】使用Java接入谷歌支付流程

使用Java接入谷歌支付的完整流程,包括准备工作以及具体的Java实现。

技术杠精的博客 3517
上一篇: LG su760手机刷机,降级,救砖教程
下一篇: linux命令行学习-dig(DNS查询器)
jakqigle
博客等级 码龄18年 37粉丝 54原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值