首页/新闻资讯/正文详情

Google Pay 一次跑通的落地路径:google-api-php-client 接入全记录

发布时间:2026/11/7 9:35:18 来源:云帆数科 栏目:资讯中心
Google Pay 一次跑通的落地路径:google-api-php-client 接入全记录
Google Pay 一次跑通的落地路径google-api-php-client 接入全记录【免费下载链接】google-api-php-clientA PHP client library for accessing Google APIs项目地址: https://gitcode.com/gh_mirrors/go/google-api-php-client周五下午产品催着要一份支付回调的演示接的活是PHP 后端发起 Google Pay 请求并接住可信的回调通知。我走的是 google-api-php-client 接入这篇是整个过程的实际记录配置、请求、回调校验都能照抄。为什么用 google-api-php-client 接 Google Pay手写 curl 的话服务账号 JWT 签名、access token 获取、401 过期后重试全要自己做而且每样都容易做错。这个库把这一段包掉了Google\Client负责整条认证链路服务端的资源类来自 composer.json 里声明的google/apiclient-services依赖按 API 生成好方法签名你只管调用。还有两点值得一提认证相关代码集中在 src/ 下服务账号、OAuth、ID token 校验各自独立成模块出问题好定位docs/auth.md 里列了各认证方式的入口底层是 Guzzle Monolog日志和 HTTP 行为跟 PHP 生态其他项目一致不用学一套新的用法。对后端本来就是 PHP 的团队来说这是接入成本最低的路线。服务账号密钥的两种放法与首个请求跑通先装依赖composer require google/apiclient一条命令装好。⚠️ 注意当前 composer.json 要求 PHP ≥ 8.1老环境先升级再动手。密钥是第一道坎。库里官方给了两种放法examples/service-account.php 里两种都有$client new Google\Client(); // 方式一直接指向密钥文件 $client-setAuthConfig(/var/credentials/service-account.json); // 方式二走环境变量 应用默认凭证生产推荐 $client-useApplicationDefaultCredentials();方式一开发期省事生产建议配GOOGLE_APPLICATION_CREDENTIALS环境变量密钥文件放在 web 目录之外避免被直接下载。然后发第一个请求$client-setApplicationName(Order_Service); $client-addScope(https://www.googleapis.com/auth/payments); $service new Google\Service\Payments($client); $order new Google\Service\Payments\Order(); $order-setMerchantReferenceId(ORDER_ . uniqid()); $response $service-orders-create($order);订单号用前缀加uniqid()生成后面查问题能全链路对得上。几个容易踩的点⚠️ 对应的 API 没在 Cloud 控制台启用时会直接 403跟密钥文件没关系排查时别往错方向走Google\Service\Payments这类名字对应 apiclient-services 生成的服务类换别的 API 就换对应的类名请求出错时结构化明细在Google\Service\Exception::getErrors()里参考 src/Service/Exception.php里面每个错误项带 domain、reason、location定位比看 message 快。怎么让回调签名与幂等真正可信回调校验是 demo 和生产差距最大的地方。先澄清一点库里的Google\AccessToken\Verify见 src/AccessToken/Verify.php负责校验 ID token即 JWT 签名内部走 Google 官方公钥端点支付回调的签名校验业界通行做法是拿共享密钥做 HMAC这部分要自己写$body json_decode(file_get_contents(php://input), true); $sign hash_hmac(sha256, $body[raw], $_ENV[PAYMENT_WEBHOOK_SECRET]); // 恒定时间比较防时序攻击 if (!hash_equals($sign, $_SERVER[HTTP_X_SIGNATURE])) { http_response_code(401); exit; }⚠️hash_equals是恒定时间比较别图省事换成签名有被时序猜解的风险。校验只是前半后半是幂等。网络抖动会让同一条通知重复到达用唯一索引把重复拦下来$id $body[notificationId]; $ok $pdo-prepare(INSERT IGNORE INTO notified(id) VALUES (?)) -execute([$id]); if ($ok) { updateOrderStatus($body[orderId], $body[status]); }第一次插入成功才走业务重复通知被唯一索引挡住直接丢弃别用内存变量去重进程一重启就失效。网络层面的抖动库里有现成的重试组件 src/Task/Runner.php按条件重发请求不用自己手写循环。支付错误排查与上线前自查清单生产上最常碰到的三类状态码错误码常见原因处理办法401凭证过期或文件不可读查文件权限必要时重建密钥403API 未启用或 scope 不足控制台启用 API核对 scope500请求参数错误打开日志看具体字段日志直接给客户端挂 Monolog 实例库本身已声明 monolog 依赖$client-setLogger(new \Monolog\Logger(google-api)); try { $service-orders-create($order); } catch (\Google\Service\Exception $e) { error_log(json_encode($e-getErrors())); }getErrors()拿到的是 Google 返回的结构化明细排障时比单行 message 有用得多。上线前我会过一遍这个清单密钥文件在 web 目录外权限收敛到服务账号可读回调做过重放测试同一条通知发两次第二次无任何副作用401 和 403 在告警里能区分开两者指向不同的处理人5xx 有重试策略瞬时故障不会直接打爆页面跑通之后的下一步可以看看批量请求 src/Http/Batch.php 和媒体文件上传 src/Http/MediaFileUpload.php对账单导出、发票附件这些需求不换技术栈就能扩出来。【免费下载链接】google-api-php-clientA PHP client library for accessing Google APIs项目地址: https://gitcode.com/gh_mirrors/go/google-api-php-client创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Type Approval (认证)
Type Approval (认证)

0 Preface/Foreword1 Type Approval介绍消费类电子包含的认证(Certification)类别如下(持续更新):Safety & EMC (Eletro Magnetic Compatiblity): UL认证 (Underwriter Laboratory)Chemical… · 2026/11/6 4:52:51

WPF 常用功能(随时更新)
WPF 常用功能(随时更新)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 4:52:51

Vue 基础入门
Vue 基础入门

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 9:23:17

出国工作需要电工证吗 你的特种作业证全国通用吗
出国工作需要电工证吗 你的特种作业证全国通用吗

出国工作需要电工证吗 你的特种作业证全国通用吗 证书过期了不知道怎么复审延期,这事儿真让人头疼。特种作业操作证全国通用,但一旦过期,很多从业者才发现自己没提前准备。尤其是一些计划出国工作的人,更是担心电工证是否被国际认可,以及如何确保证书在… · 2026/11/7 9:34:54

郑州应急厅电工证复审网上查询学历不高也能报
郑州应急厅电工证复审网上查询学历不高也能报

郑州应急厅电工证复审网上查询学历不高也能报 你是不是也担心学历不高报不了郑州应急厅电工证复审?别急,今天就给你说清楚, 网上查询 流程怎么走,报名材料有哪些,还有复审后工资能不能涨,这些都给你安排上。… · 2026/11/7 9:34:54

晋城可以考高级电工证多少钱?学历不高也能报名
晋城可以考高级电工证多少钱?学历不高也能报名

晋城可以考高级电工证多少钱?学历不高也能报名 你是不是总想着学点手艺,找份稳定的工作,但又怕自己文化程度不够,连报名资格都没?晋城可以考高级电工证,但很多人却不知道 多少钱… · 2026/11/7 9:34:54

微信里电工证怎么查询最新政策解读,低压高压在哪考都有讲究
微信里电工证怎么查询最新政策解读,低压高压在哪考都有讲究

微信里电工证怎么查询最新政策解读,低压高压在哪考都有讲究 你是不是也经常听人说“ 学历不高怕报不上名 ”,担心自己没文化、没背景就考不了电工证?别急,电工证报考并不看学历高低,关键看你的操作能力、安全意识和报名流程是否走对。尤其是“… · 2026/11/7 9:34:54

徐州市铜山区电工证过期了不知道怎么复审延期?上岗必备全攻略
徐州市铜山区电工证过期了不知道怎么复审延期?上岗必备全攻略

徐州市铜山区电工证过期了不知道怎么复审延期?上岗必备全攻略 证书过期了不知道怎么复审延期?你不是一个人,很多在徐州市铜山区从事电工工作的朋友都遇到过这个问题,尤其是那些刚上岗不久的新人,一不留神就错过了复审时间,导致证书失效, 上岗必备… · 2026/11/7 9:34:54

用什么能查电工证真伪实操考试考什么
用什么能查电工证真伪实操考试考什么

工地太忙根本没时间复习考试?查电工证真伪和含金量全知道 你是不是也在工地跑得团团转,连吃饭的时间都没了?更别提抽空复习电工证考试了。但你心里明白,这个证书 含金量… · 2026/11/7 9:33:54

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41

电工作业提示版通过率揭秘:怎么考才能一次过?
电工作业提示版通过率揭秘:怎么考才能一次过?

电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41

电工证年审报名千万别踩坑 外省证转过来要搞清这几点
电工证年审报名千万别踩坑 外省证转过来要搞清这几点

电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码