Google支付 PHP端验证订单号的有效性

PHP谷歌支付[APP] 获取GOOGLE永久token 第一步:获取code public function googleToken() { if (Input::has('code') && ($code = Input::get('code', 'str', ''))) { var_dump($_REQUEST); die; } else { $this->redirect("h 阅读详情

1.创建API应用
APIs Console https://code.google.com/apis/console
需要用谷歌开发者账号登陆,该账号要和发布谷歌应用申请谷歌应用的那个账号相同,才能把这个创建的project和游戏应用绑定上(绑定需要手动操作)
绑定项目
在 https://play.google.com/apps/publish/
Settings–> API access—> LINKED PROJECT 和 OAUTH CLIENTS
client_id 就是在这里创建出来的。
另外,你要在googleplay console—> 对应应用的project下—> APIs & auth—-> APIs ,把GooglePlay Android Developer API设置为ON。
如果是你是个人应用开发者的话,可以直接配置,否则一定要账户管理员给你个人gmail账号设置个权限,也就是只有帐户所有者才能配置API权限,请联系相应的帐户所有者更新API设置

这里写图片描述

2.获得refresh_token
2.1访问下面的地址
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=…&client_id=.
redirect_uri是上面步骤一中你填写的uri
client_id 是创建成功后,谷歌给你的
2.2完操作后,浏览器会自动跳转到你填写的uri页面,并跟上一个code,类似于这样的(4/eWdxD7b-YSQ5CNNb-c2iI83KQx19.wp6198ti5Zc7dJ3UXOl0T3aRLxQmbwI)
3.3获得refresh_token

//获取refresh_token  
$url = "https://accounts.google.com/o/oauth2/token";
$data = array(
    'grant_type'=>'authorization_code',
    'code'=>'4/eWdxD7b-YSQ5CNNb-c2iI83KQx19.wp6198ti5Zc7dJ3UXOl0T3aRLxQmbwI',
    'client_id'=>'',
    'client_secret'=>'',
    'redirect_uri'=>'http://www.tapenjoy.com/',
    );
 $contents = $this->curl($url,$data);
 echo $contents;

如果成功,会获得类似于这样的返回
{
“access_token” : “ya29.ZStBkRnGyZ2mUYOLgls7QVBxOg82XhBCFo8UIT5gM”,
“token_type” : “Bearer”,
“expires_in” : 3600,
“refresh_token” : “1/zaaHNytlC3SEBX7F2cfrHcqJEa3KoAHYeXES6nmho”
}
refresh_token后面不会出现,要保存好,要通过这个,获取access_token

//curl方法
private function curl($url,$data=null,$method = null){
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if ($method == 'post') {
        curl_setopt($ch, CURLOPT_POST,1);
    }
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);//使用了SOCKS5代理
    curl_setopt($ch,CURLOPT_PROXY,'192.168.100.2');//代理服务器
    curl_setopt($ch,CURLOPT_PROXYPORT,'1080');//代理端口
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书 https访问的时候
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书 https访问的时候
    if($data){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//传递参数
    }
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
} 

3.订单验证

// 1.获取access_token
    $url = "https://accounts.google.com/o/oauth2/token";
    $data_tmp = array(
        'grant_type'=>'refresh_token',
        'refresh_token'=>'上面获取到的refresh_token',
        'client_id'=>'',
        'client_secret'=>'',
        );
    $contents = $this->curl($url,$data_tmp,'post');
    $contents = json_decode($contents,true);
    $access_token = $contents['access_token'];
// 2.通过获得access_token 就可以请求谷歌的 API接口,获得订单状态
    $url = "https://www.googleapis.com/androidpublisher/v2/applications/{$packageName}/purchases/products/{$productId}/tokens/{$purchaseToken}?access_token={$access_token}";
    $contents = $this->curl($url);
    $contents = json_decode($contents,true);
    if($contents['consumptionState'] == 0 && $contents['purchaseState'] == 0){
        //验证成功 没有消耗 购买成功
        //处理游戏逻辑
    }

参考文档
https://developers.google.com/android-publisher/authorization#generating_a_refresh_token
https://developers.google.com/android-publisher/api-ref/purchases/products/get
http://blog.youkuaiyun.com/lemonzone2010/article/details/44983659
http://blog.youkuaiyun.com/w13770269691/article/details/46428281
http://blog.youkuaiyun.com/hjun01/article/details/42032841

google支付服务端订单验证PHP代码 关于google play支付交易订单的服务端验证方法PHP版本demo 阅读详情

相关推荐

接入Google Play 支付经历

APP内的谷歌结算库订阅调用流程图1.0: APP内的谷歌结算库订阅调用流程图2.0: APP内的谷歌结算库一次性购买调用流程图3.0: 工程接入Google结算库需要做的事情: 在 gradle 中引用的依赖: implementation 'com.android.billingclient:billing:3.0.0' 在 AndroidManifest 中添加的权限 <uses-permission android:name="com.android...

mingzaizai_123的专栏 2441

php ci框架 谷歌支付服务端校验

ci框架 谷歌支付服务端校验

weixin_45143733的博客 2450

PHP集成Google Pay支付全流程安全实践与避坑指南

在线支付集成是现代Web开发的核心环节,其安全模型基于令牌化(Tokenization)技术原理,将用户的敏感支付信息替换为一次性令牌,确保数据不经过商户服务器,从而大幅降低数据泄露风险。这一技术为开发者提供了便捷的支付接口调用方式,其核心价值在于平衡了用户体验与交易安全。在电商、SaaS订阅等国际收款场景中,集成如Google Pay这类数字钱包能显著提升支付成功率。本文聚焦于使用PHP进行Google Pay集成的安全闭环实践,详细解析了从环境配置、前端按钮集成到服务器端令牌验证与支付捕获的完整流程,并

weixin_34216107的博客 345

google支付接入PHP语言,PHP语言开发Paypal支付demo的具体实现

一、paypal支付接口准备工作首先去申请一个paypal账号,https://www.paypal.com/。申请完毕并登录,进入https://developer.paypal.com/developer/accounts/。即可看到你申请账号自动配属的两个测试账号,账号类别分别是:BUSINESS和PERSONAL,PERSONAL的账号里面有$9999,测试费用,表激动。下面去给两个账号设...

weixin_30350469的博客 2014

php 开发Google支付回调验证并发货

参考主要还是Google开发者后台API讲述,对应开发,你会少走很多坑,一般app应用(sockect连接服务器)不建议使用此验证方法,因为你的公钥是放在客户端代码中的,如果你的app被破解,破解者将获得你的公钥再篡改订单信息,破解者拿到公钥后可能达到刷单目的,因为你的以上验证前提都是更具此公钥加密的。app (web)应用无需担心。Google提供了web API 接口,可使用。

workassb的博客 8151

短视频互动任务平台:从架构设计到运营部署的完整实践指南

在移动互联网时代,短视频平台已成为流量聚集地,催生了围绕视频互动数据(如点赞、评论)增长的衍生需求。从技术原理上看,构建一个支持此类需求的平台,核心在于设计一套稳定、可扩展的微服务或前后端分离架构,通常后端采用Spring Boot或Laravel等成熟框架处理业务逻辑与数据库交互,前端则需适配多端。其技术价值在于通过系统化的任务管理与资金结算流程,将零散的供需双方高效匹配,实现资源的优化配置。典型的应用场景包括为内容创作者提供初始数据助推、本地社群营销推广等。本文以**视频点赞任务平台**为例,深入剖析了

weixin_34032792的博客 412

99%送达率+2050亿封/月:为什么Twilio SendGrid是全球化送达的标杆?

出海企业的群发邮件API选型,核心看三个指标:送达率能否保障全球覆盖、开发者能否快速集成、平台能否随业务增长弹性扩展。SendGrid Email API的定位清晰可验证:规模验证:每月处理超2050亿封邮件、1200万+开发者的共同选择,2025年Cyber Week处理751亿封邮件送达保障:99%送达率、与四大ISP直接对等连接、1.9秒中位投递速度开发者优先:7种语言SDK、5分钟集成、开箱即用的信誉管理数据来源说明:Twilio官网SendGrid Email API产品页。

科技大视野 — 科技大视野,行走科技发展前沿 8

ADS新手必看:用Filter DesignGuide快速搞定一个4GHz LC低通滤波器(附保姆级避坑指南)

本文为ADS新手提供了4GHz LC低通滤波器的完整设计流程,重点介绍了如何使用Filter DesignGuide避免参数设置陷阱、正确解读仿真结果以及解决实际电路与理论值的偏差问题。通过真实工程案例,详细讲解了工程创建、Filter DesignGuide配置、电路优化、仿真设置及实际工程中的进阶技巧,帮助工程师快速掌握LC滤波器设计。

weixin_30878501的博客 300

代码生存手册:237次线上事故淬炼的工程实践

在软件工程中,'代码质量'并非抽象概念,而是系统稳定性、可维护性与团队协作效率的技术基石。其核心原理在于通过命名契约、异常可观测性、空值类型化、测试变异杀伤率等手段,将隐性设计决策显性化、将运行时风险前置拦截。这类实践的技术价值远超风格规范——它直接降低故障平均修复时间(MTTR)、提升单元测试有效性、减少跨服务集成风险,并支撑微服务演进中的模块解耦。典型应用场景包括高并发SaaS系统迭代、金融级支付链路加固、遗留系统重构及新人快速赋能。本文即基于真实生产环境中的400万行代码治理经验,聚焦那些教科书不写、

cuml0912的博客 343

哨兵1号(Sentinel-1)雷达SAR数据预处理全流程:从下载到精确配准

本文详细介绍了哨兵1号(Sentinel-1)雷达SAR数据从下载到精确配准的全流程预处理方法。内容涵盖SLC与GRD数据选择、ASF平台下载技巧,并重点解析了使用SNAP软件进行几何校正、辐射定标及高精度配准的核心步骤,为InSAR形变监测等应用提供可靠的数据基础。

weixin_29208327的博客 477

在昇腾910B服务上部署搭建适配PDF解析工具Mineru2.5开源项目

本文介绍了在昇腾910B服务器上部署开源PDF解析工具Mineru2.5的过程。首先从昇腾社区下载mindie镜像并运行容器,安装系统依赖。针对部署过程中遇到的多个报错问题(如torchvision与torch版本不匹配、昇腾软件栈与NumPy 2.0不兼容等),提供了具体解决方案和兼容版本。通过设置环境变量、安装指定版本的Python依赖包,成功部署Mineru项目并下载模型。最后运行测试,验证了在NPU设备上运行pipeline的可行性。整个过程详细记录了版本适配和错误处理方法,为类似部署场景提供了参考

一起加油吧 2163

3步搞定Google Pay支付集成:基于PHP客户端的实战指南

你还在为支付接口调试焦头烂额?本文基于google-api-php-client实现Google Pay快速接入,全程无加密算法陷阱,普通开发者2小时即可上线。读完你将掌握: - 服务账号密钥配置(避开90%开发者踩过的权限坑) - 支付流程完整代码实现(含异步通知处理) - 生产环境必备的错误监控方案 ## 环境准备与密钥配置 ### 开发环境搭建 通过Composer安装依赖包,确保PHP

gitblog_00089的博客 870

5分钟搞定Unity+Visual Studio开发环境配置(含C#游戏开发工作负载)

本文提供了一份详细的Unity与Visual Studio开发环境配置指南,帮助开发者在5分钟内完成C#游戏开发工作负载的设置。从Unity Hub安装到Visual Studio关键组件选择,再到常见问题排查,全面覆盖环境搭建的各个环节,显著提升游戏开发效率。

weixin_29014237的博客 248

PHP支付集成避坑指南:Google Pay无缝对接实战详解

在进行Google Pay支付集成时,开发者常常面临服务账号配置复杂、异步通知处理棘手等问题。本文将围绕服务账号配置、支付流程实现以及异步通知处理等关键环节,采用“问题-方案-验证”框架,为你提供一套实用的PHP集成方案,助你避开常见陷阱,顺利完成Google Pay支付集成。 ## 如何解决服务账号配置难题 ### 开发环境搭建问题 在进行Google Pay支付集成前,首先要搭建好开发环境

gitblog_00497的博客 248

嵌入式接口通识知识之PCIe接口

PCIe x1接口是最常见的一种,插槽的长度是最短的,仅有25mm。PCIe x4接口有四个数据通道,提供比x1接口更高的带宽,插槽的长度为39mm,分为前后两组,一组22根针脚用于供电,剩下的42根针脚是数据针脚。插槽全长89mm,有164根针脚,分为前后两组,较短的插槽有22根针脚,主要用于供电,较长的插槽142根,主要用于数据传输,具有16通道所带来的高带宽。PCIe x8接口有八个数据通道,插槽全长56mm,有98跟针脚,分为前后两组,较短的22根针脚用于供电,剩下的76根针脚是数据针脚。

2301_76587520的博客 1305

电商数据采集实战——多平台价格监控、比价分析与智能告警系统

在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 136

谷歌商店付款php,google play支付如何用php验证订单完成的合法性

在接google play的充值渠道,用户购买和支付都在客户端完成操作,用户支付完成后,客户端会下发支付信息给充值平台(php开发的),充值平台需要验证这些信息的合法性。请教有开发过的同学,如何使用php验证支付信息。订单相关信息"nonce" : 1836535032137741465,"orders" :[{ "notificationId" : "android.test.purchased...

weixin_35859336的博客 1625

地统计插值学习心得(一)

(创建地统计图层工具用于根据现有的地统计图层或者地统计模型来创建包含新要素数据集的地统计图层,也就是使用构建好的地统计模型用到新的数据集中)这表明,远离极值的区域预测不受极值的影响,并且还表明,包括极值会导致钼元素浓度高的区域周围的预测明显变高。通常,我们使用同一个数据集进行建模和预测,但是在实际插值过程中,这两步的数据可以是不同的,这就是处理极值的诀窍。如果你的数据集有无法忽略的极值时(比如这些钼元素浓度),一种常见的方法是首先显式移除极值进行建模,然后在预测中使用整个数据集(包括极值)。

JData_Engineer的博客 286

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

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

Jason_HD的博客 2万+

C#实现鼠标点击任意绝对位置(附完整源码)

C#实现鼠标点击任意绝对位置(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 476

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

5个避坑步骤:从零开始的Google Pay支付集成PHP开发安全实践

作为PHP开发者,你是否在支付集成时遇到过签名验证失败、环境配置混乱或回调处理漏洞等问题?本文将通过5个系统性步骤,带你构建安全可靠的Google Pay支付系统,涵盖身份认证、流程设计、性能优化和风险防控全流程,让你避开90%的常见陷阱,实现企业级支付集成方案。 ## 一、身份认证体系搭建:如何确保API调用的合法性? 支付系统的第一道安全防线就是身份认证。错误的密钥配置不仅会导致API调用

gitblog_00809的博客 205

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

google play 支付验证--踩坑

正常的流程: 参考 https://github.com/googleapis/google-api-php-client //安卓支付成功后传过来的 $product_id = '0001'; $purchase_token = 'xxxxxxx'; $package_name = 'com.xxxxx'; //注册好service account后下载秘钥json文件 putenv('G...

lein_wang的专栏 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Google 支付从入门到跳坑

转载:http://leenjewel.github.io/blog/2016/06/21/google-zhi-fu-cong-ru-men-dao-tiao-keng/ Google 支付从入门到跳坑 Google 支付真的不难,难的是由于“你懂的”的国内网络环境导致的复杂的测试流程和 Google Console “天花烂缀”的各种配置项目还有那些“文不达意”的报错信息。

a457886115的专栏 2181

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

在接google play的充值渠道,用户购买和支付都在客户端完成操作,用户支付完成后,客户端会下发支付信息给充值平台(php开发的),充值平台需要验证这些信息的合法性。请教有开发过的同学,如何使用php验证支付信息。 订单相关信息 "nonce" : 1836535032137741465, "orders" : [{ "notificationId" : "android.test

明明 1万+

Google Android应用内支付订单服务端验证

       最近公司的APP新增了收费版本,针对一些高级功能需要用户付费才能使用,付费的方式是用户通过应用内支付去订阅一个月或一年的账户高级权限,相当于QQ里面的VIP功能。        大概的流程是用户下载APP后注册之后默认为普通用户,用户通过应用内支付去订阅高级账户权限包之后,客户端应用把订单的收据数据提交到服务器,服务器保存用户的支付订单收据数据,并且去验证收据的合法性,确保不是伪造...

灵犀物润 1万+

安卓应用接入谷歌内购支付完整教程(源码)

1.在Google Play 控制台创建应用、应用内商品。2.发布应用到内测版或者正式版。3.在Google Play 控制台添加测试账号,用这个账号来测试支付。到此,支付的基本操作已分享。自己动手试一试吧!如果你觉得该文章对你有用,动动你的小手指,举手之劳,赞有余香!t=M85Bt=M85B丿独狼灬望曰https://www.jianshu.com/u/0fd3d0489c6a。

优秀技术文章收录 1万+
上一篇: php curl函数请求链接获得结果
下一篇: echarts formatter编写
JYYYYYYYYYY
博客等级 码龄15年 6粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值