程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
软件定制开发/软件按需定制 技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
支付宝证书模式报 40002:app_cert_sn 与根证书 SN 算错的排查路径
代码
支付宝证书模式报 40002:app_cert_sn 与根证书 SN 算错的排查路径
2026-10-24 09:02:19
待签名串比对没问题、40002 却还在,只是 sub_code 变了——支付宝公钥证书模式下 app_cert_sn 和 alipay_root_cert_sn 是参与签名的必填参数,算错或漏带就报 isv.missing-app-cert-sn、isv.invalid-alipay-root-cert-sn。本文给 SN 的组成与 fixed 值、openssl 手算脚本、SDK 提交方法对照、×tamp 转义与 PHP SDK 4.2.0 的 SN 解析坑、三个证书文件各自用途,以及证书模式与公钥模式的取舍。
支付宝
证书模式
接口对接
支付排障
验签
微信支付服务商模式:只改签名密钥就报 PARAM_ERROR,sp_appid 和 sub_appid 下的 openid 怎么配对
代码
微信支付服务商模式:只改签名密钥就报 PARAM_ERROR,sp_appid 和 sub_appid 下的 openid 怎么配对
2026-10-24 09:01:26
直连商户切到服务商模式后下单全报 PARAM_ERROR,问题多不在签名:服务商模式下 sp_appid/sub_appid 两套 AppID 对应两套 openid,配对错了就报「appid与openid不匹配」「sub_appid和sub_openid不匹配」。本文给出下单字段与路径、sub_appid 传与不传的取舍、六条报错原文对照、回调里 payer 字段怎么取,以及把 openid 从用户主键改成 AppID 维度存储的建表方案。
微信支付
服务商模式
接口对接
支付排障
openid
割接前的 pt-table-checksum:报出的 DIFF 有一半是假阳性,先分清工具边界再修数据
编程
割接前的 pt-table-checksum:报出的 DIFF 有一半是假阳性,先分清工具边界再修数据
2026-10-24 00:05:46
割接前跑 pt-table-checksum 输出几百行 DIFF,不等于数据坏了。本文讲清它的工作机制(只在源端执行、靠复制流到副本重放)、CRC32 碰撞与 chunk 切分、binlog_format 与 ROW 副本导致校验走不通的边界,以及 TIMESTAMP 时区、collation、浮点精度、并行复制错位这些假阳性来源;附不一致结果的分型处理表与只读校验命令。
数据库割接
MySQL
数据校验
pt-table-checksum
数据库迁移
复制
运维
MySQL 写后读仍是旧值:Seconds_Behind_Source 判不准,改用位点/GTID 等待
编程
MySQL 写后读仍是旧值:Seconds_Behind_Source 判不准,改用位点/GTID 等待
2026-10-24 00:04:53
读写分离下写后立刻读到旧值,而 Seconds_Behind_Source 判不出这笔写是否已落到从库:讲清它在五种场景下为什么失真、performance_schema 原始提交时间戳怎么看真实水位、SOURCE_POS_WAIT 与 WAIT_FOR_EXECUTED_GTID_SET 的返回值语义、主库 GTID 怎么带到读侧,以及超时回落与等待堆积的代价。
读写分离
MySQL
主从复制
GTID
复制延迟
WAIT_FOR_EXECUTED_GTID_SET
数据库
停写没停干净就切库:MySQL/PG 割接窗口的位点判定、追平阈值与回滚预算
编程
停写没停干净就切库:MySQL/PG 割接窗口的位点判定、追平阈值与回滚预算
2026-10-24 00:04:16
割接窗口里真正决定成败的是四件事:源端停写是否彻底、增量链路是否追到最后一个事务、反向链路何时启动、回滚还有多少时间。按华为云 DRS、腾讯云 DTS 与 AWS 割接口径整理可执行命令:read_only 与 super_read_only 的差别、show master status 与 binlog events 抽查、processlist 里 Sleep 连接不算写入、长事务导致假追平、GTID 子集与 pt-heartbeat 判据,另附按分钟计的操作清单。
数据库割接
MySQL
PostgreSQL
数据库迁移
割接窗口
binlog
回滚
运维
MySQL 9.7 企业版动态脱敏:列上挂 MASKING POLICY 后,WHERE、索引和导出都得重算
编程
MySQL 9.7 企业版动态脱敏:列上挂 MASKING POLICY 后,WHERE、索引和导出都得重算
2026-10-24 00:04:04
MySQL 9.7 企业版动态数据脱敏(DDM)的落地笔记:masking policy 装在 object_policy 组件上,查询解析阶段把脱敏列替换成 CASE 表达式,写入不受影响。整理组件安装与专用 schema 的取舍、CASE 语法与两个 gatekeeper、四类挂载写法、七条限制及其后果(不能建索引/分区键/生成列/CHECK),给出按序排查清单,并标出 WHERE 走掩码值、导出拿掩码数据等需自测的推导结论。社区版无此功能这一硬约束单独说明。
数据脱敏
MySQL
动态脱敏
DDM
数据库安全
MySQL9.7
脱敏策略
支付调起失败别先查签名:微信 JSAPI / 小程序 / 支付宝手机网站支付的五层排查
编程
支付调起失败别先查签名:微信 JSAPI / 小程序 / 支付宝手机网站支付的五层排查
2026-10-24 00:03:48
调起支付失败的报错大多不在签名,而在浏览器环境、商户配置、参数形态、下单与调起场景是否成对。按五层拆开:外部浏览器只能走 H5、支付授权目录的 5 条硬规则、"缺少参数 total_fee" 的真实成因、prepay_id 只能同场景调起,以及三个端取消回调的不同返回值。
支付调起
微信支付
JSAPI支付
小程序支付
支付宝手机网站支付
接口对接
AES-256-GCM 密钥轮换:把版本号和密钥代际写进密文的第一天
编程
AES-256-GCM 密钥轮换:把版本号和密钥代际写进密文的第一天
2026-10-24 00:03:32
换掉 ENCRYPTION_KEY 之后旧密文全部解不开,GCM 只给一个 verification failed。这篇讲清轮换前必须写进密文格式的两样东西:版本前缀与密钥代际,并给出 n8n、ZigBase 的具体格式、Go 的 key ring 读路径、信封加密 DEK/KEK 的成本差别,以及 rewrap 分批重加密的断点与校验步骤。
AES-256-GCM
密钥轮换
信封加密
HKDF
密钥代际
systemctl start 没报错但定时任务不跑:systemd timer 替掉 crontab 的迁移与排查
编程
systemctl start 没报错但定时任务不跑:systemd timer 替掉 crontab 的迁移与排查
2026-10-23 21:31:59
crontab 被编辑器悄悄清空、只 start 不 enable 导致 timer 永不触发、UTC 服务器上 OnCalendar 早 8 小时、手动能跑但 timer 报 127——把 certbot、数据库备份、WordPress wp-cron 三个任务迁到 systemd timer 的完整配置与排查路径,附带什么场景该继续用 cron。
systemd
Linux运维
cron
定时任务
部署
脚本打印 done、产物却是 0 字节:tee 吞掉了退出码,137 才露出 OOM 的手
编程
脚本打印 done、产物却是 0 字节:tee 吞掉了退出码,137 才露出 OOM 的手
2026-10-23 21:31:53
夜间任务每天照常打印 done,汇总文件却是 0 字节。根因是 `curl | tee` 只返回 tee 的退出码。打开 pipefail 后看到 137(SIGKILL),再用 cgroup memory.events 确认 OOM;配套 preflight 预检、逐条 checkpoint + fsync、结尾数量对账,以及一张贴在任务旁的退出码表。
Shell
Bash
Linux运维
cgroup
排障
Vite 8 升级笔记:Rolldown 接管打包,esbuild 配置怎么迁到 oxc
代码
Vite 8 升级笔记:Rolldown 接管打包,esbuild 配置怎么迁到 oxc
2026-10-23 21:08:33
Vite 8 用 Rolldown 与 Oxc 取代 esbuild、Rollup,配置会被自动转换,但 plugins 只是部分支持、默认 target 提到 Safari 16.4。本文给出完整映射表、先换 rolldown-vite 隔离问题的路径与五步排查。
Vite
Vue
前端工程化
PHP 以 40:0 停止背书 PEAR:go-pear.phar 还在你的构建里跑吗
编程
PHP 以 40:0 停止背书 PEAR:go-pear.phar 还在你的构建里跑吗
2026-10-23 21:07:52
RFC 40:0 通过后 PHP 不再背书 PEAR,静态归档保留到 2027 年底,期间 php.net 仍分发可执行的 go-pear.phar。本文给出自查构建脚本、pear/pecl 依赖、CI 缓存与镜像残留的清单,以及迁移与哈希固定做法。
PHP
供应链
运维
构建
Go 1.27 运行时迁移:asynctimerchan 被移除,traceback 头部会带 pprof 标签
编程
Go 1.27 运行时迁移:asynctimerchan 被移除,traceback 头部会带 pprof 标签
2026-10-23 21:07:04
Go 1.27 移除了 asynctimerchan,time 包 channel 永远无缓冲,Stop 后手动排空的旧写法可能永久阻塞;同时 go 指令 1.27 的模块,traceback 头部会带上 pprof 标签。给出改写方式与验证代码。
Go
运行时
迁移
go fix 换了分析器名:waitgroup 改成 waitgroupgo,CI 里那行 -run 会静默失效
编程
go fix 换了分析器名:waitgroup 改成 waitgroupgo,CI 里那行 -run 会静默失效
2026-10-23 21:05:56
Go 1.27 的 go fix 新增 atomictypes、embedlit、slicesbackward、unsafefuncs 四个 modernizer,删掉 fmtappendf,waitgroup 改名 waitgroupgo。本文给出 -diff 审查流程、CI 脚本适配,以及为什么改了名却不报错。
Go
工具链
CI
PHP 长驻 worker 的 OOM 排障:8.6 换掉 longjmp,多了 memory_hard_limit_percent
编程
PHP 长驻 worker 的 OOM 排障:8.6 换掉 longjmp,多了 memory_hard_limit_percent
2026-10-23 21:05:40
PHP 8.6 起 OOM 不再用 longjmp 中途跳出,改为置标记跑到安全点报错,并新增 memory_hard_limit_percent 硬上限直接退出进程。本文解释改动对 FPM 与 FrankenPHP 长驻 worker 的影响、两道内存线怎么配、以及如何验证。
PHP
内存管理
排障
安全
PostgreSQL 19 异步 I/O 调优:删掉手工 io_workers,让 worker 池自己伸缩
编程
PostgreSQL 19 异步 I/O 调优:删掉手工 io_workers,让 worker 池自己伸缩
2026-10-23 21:03:32
PG 19 让 io_method=worker 的 worker 池自伸缩,新增四个 GUC,并用 EXPLAIN (ANALYZE, IO) 把每节点异步 I/O 计数放进执行计划。本文给出从 18 迁移时该删哪些参数、上下限怎么设、以及验证代价。
PostgreSQL
数据库
性能调优
Nginx UI 六个 CVE 复盘:AuthRequired 只校验 JWT,不校验会话,v2.5.0 才补上 RequireSecureSession
综合
Nginx UI 六个 CVE 复盘:AuthRequired 只校验 JWT,不校验会话,v2.5.0 才补上 RequireSecureSession
2026-10-23 21:02:14
Nginx UI v2.5.0 一次修掉六个 CVE,五个都源自同一个假设:只要 JWT 有效就算已认证。梳理 2.0.0–2.4.x 的认证、CSRF、节点 token、备份 symlink 与升级 digest 链路,给出升级后的检查与轮换步骤。
Nginx
安全
运维
鉴权
FrankenPHP 上生产:worker 模式、嵌入二进制,以及它省掉的那几层
资讯
FrankenPHP 上生产:worker 模式、嵌入二进制,以及它省掉的那几层
2026-10-23 20:01:38
FrankenPHP 把 PHP 嵌进 Caddy 进程,省掉 Nginx + PHP-FPM 的 FastCGI 与双生命周期。讲清 worker 模式怎么配、吞吐提升与全局状态残留的代价、embed 静态二进制的密钥风险、HTTP/3 与 Mercure,以及上线前必须设的 max_requests 与 opcache 参数。
FrankenPHP
PHP
Caddy
Laravel
部署
自建 ntfy 推送通道:Docker 部署、Token 认证与 Nginx 长连接反代
综合
自建 ntfy 推送通道:Docker 部署、Token 认证与 Nginx 长连接反代
2026-10-23 20:00:57
用 Docker 部署自建 ntfy 推送服务,端口只绑 127.0.0.1、开认证并发 token,Nginx 反代必须关 proxy_buffering 并把超时拉到 1d,否则手机端收不到消息。附磁盘告警、systemd OnFailure、Uptime Kuma 接入与心跳防沉默。
ntfy
运维
Docker
Nginx
告警
微信支付 APIv3 退款卡在受理之后:PROCESSING 转 CLOSED、ABNORMAL、NOT_ENOUGH 怎么分
代码
微信支付 APIv3 退款卡在受理之后:PROCESSING 转 CLOSED、ABNORMAL、NOT_ENOUGH 怎么分
2026-10-23 09:01:40
申请退款返回 200 只代表受理,退款单可能几天后转 CLOSED 或 ABORMAL,钱退不出去。本文按状态机拆三种卡点:PROCESSING 超 7 天转 CLOSED 要换新 out_refund_no 重提(与接口失败必须用原单号的区别)、ABNORMAL 先退零钱失败后如何发起异常退款、NOT_ENOUGH 与分账订单出资/余额的关系,附 Go 判断片段与排查清单。
微信支付
APIv3
退款
退款异常
CLOSED
ABNORMAL
NOT_ENOUGH
支付对接
Vue Router 4 守卫做鉴权踩到的四个坑:无限重定向、刷新丢动态路由、redirect 开放跳转
编程
Vue Router 4 守卫做鉴权踩到的四个坑:无限重定向、刷新丢动态路由、redirect 开放跳转
2026-10-23 00:04:39
Vue Router 4 用导航守卫做鉴权最容易踩的四个坑:/login 未标 public 造成无限重定向、权限异步加载与 mount 顺序导致刷新被踢回登录页、addRoute 后需 return to.fullPath 重新解析、刷新丢动态路由。附守卫代码、router.isReady 启动顺序与开放重定向校验。
前端路由
Vue
Router
导航守卫
鉴权
动态路由
RDS
history 模式上线后深链接刷新 404:Nginx 回退、/api 被吞与 base 配错的排查
编程
history 模式上线后深链接刷新 404:Nginx 回退、/api 被吞与 base 配错的排查
2026-10-23 00:04:15
history 模式上线后深链接和刷新 404,分五处排查:Nginx try_files 的 $uri/ 目录索引陷阱、/api 被回退成 HTML 导致 Unexpected token '<'、Vite base 与 createWebHistory 只改一边、S3/OSS 错误文档配置、index.html 缓存引用旧 hash 资源。附症状对照表与上线前 curl 自检。
前端路由
Vue
Router
Nginx
history模式
SPA部署
订单状态机的状态语义与恢复路径:Closed 可恢复,Cancelled 只退款
编程
订单状态机的状态语义与恢复路径:Closed 可恢复,Cancelled 只退款
2026-10-23 00:03:59
把订单的「已关闭」和「已取消」合成一个终态,支付回调晚到就只能人工对账。这篇按 orderflow 的六状态枚举和 CanTransitionTo 迁移表,拆开两条恢复路径:Closed 先 QueryOrder 复核、校验金额,再走独立的 CASReopenPaid 逆向恢复并触发 OnReopened;Cancelled 保持不动,只以 (order_no, trade_no) 唯一键写退款 outbox。附 CAS 条件更新 SQL、OnPaid 失败停在 Paid 的 fallback 重扫,以及状态机适用边界。
订单状态机
状态机
支付回调
订单关单
CAS
幂等
Go
DISCARD 不是万能重置:PostgreSQL、Redis、MySQL 清理会话状态的边界与代价
编程
DISCARD 不是万能重置:PostgreSQL、Redis、MySQL 清理会话状态的边界与代价
2026-10-23 00:03:47
连接池归还连接时该跑哪条重置命令?拆开 PostgreSQL DISCARD ALL 的等价语句,指出 RESET ALL 回到会话启动值、不能在事务块内(25001)、DISCARD SEQUENCES 造成序列空洞、DISCARD PLANS 清空计划缓存的代价;对比 Redis 的 DISCARD 与 6.2 的 RESET、MySQL 的 COM_RESET_CONNECTION,并给 PgBouncer 池化模式下的取舍与上线检查清单。
DISCARD
PostgreSQL
Redis
MySQL
连接池
会话状态
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
336
下一页
共 336 页
到第
页
确定