Pay 微信支付 v2:close 关闭订单接口完整实战指南
后端金融科技【免费下载链接】pay可能是我用过的最优雅的 Alipay/WeChat/Unipay/江苏银行 的支付 SDK 扩展包了项目地址https://gitcode.com/yansongda/pay点击查看免费下载微信支付官方规定订单生成后未支付超过 7 天将自动关闭而通过关闭订单接口商户可以在超时前主动对处于「未支付」状态的订单执行关单。本文以 Pay 开源支付 SDKyansongda/payv2 文档中 web/docs/v2/wechat/close.md 为骨架结合仓库源码Provider、Shortcut、Plugin 三层实现与测试用例完整讲解close关闭订单的调用方式、场景参数、返回值处理与底层插件执行链帮你快速掌握并排查线上关单问题。方法签名与返回值微信关闭订单在 Pay 中对应close方法其签名与返回值如下方法名参数返回值closestring/array$orderCollection参数既可以直接传入商户订单号字符串也可以传入包含out_trade_no等订单配置的数组返回值Yansongda\Supports\Collection实例可通过$collection-xxx访问服务器返回的数据。最小调用示例在 Pay 中先完成微信支付配置完整配置可参考 微信概述与快速上手需包含app_id/appid/miniapp_id、mch_id、key等基础信息随后即可关闭订单$order [ out_trade_no 1514027114, ]; // 也可以直接传入订单号字符串 // $order 1514027114; $result $wechat-close($order);其中$wechat为Pay::wechat($config)返回的实例。两种传参方式等价当传入字符串时SDK 内部会将其作为out_trade_no处理简化只关单个订单的场景。订单配置参数close的订单配置参数与微信支付官方接口无任何差别兼容所有官方功能。所有可用参数请以官方《JSAPI 支付-关闭订单》文档原 v2 文档中指向官方 wiki 的「请求参数」一栏为准。其中最关键、也是唯一必填的参数是参数类型必填说明out_trade_nostring✅商户系统内部订单号必须是 32 个字符内、且与下单时一致的订单号这一约束在源码中有明确校验以 JSAPI 场景的 Jsapi 关闭订单插件 为例插件从请求载荷中读取out_trade_no若为空则直接抛出InvalidParamsException错误码PARAMS_NECESSARY_PARAMS_MISSING提示“Jsapi 关闭订单参数缺少out_trade_no”。因此调用前务必确认订单号不为空且与支付下单时保持一致。APP / 小程序订单关闭默认情况下close关闭的是JSAPI公众号订单如果你需要关闭APP或小程序场景的订单请传入场景标识参数// 关闭 APP 支付订单 $result $wechat-close([ out_trade_no 1514027114, type app, ]); // 关闭小程序支付订单 $result $wechat-close([ out_trade_no 1514027114, type miniapp, ]);即通过[type app]与[type miniapp]分别指定 APP 与小程序关单场景。从当前仓库源码结构看v3 版本已将场景分发机制统一收敛为_action参数jsapi/app/mini/h5/native/combine详见下文「场景分发」小节与 微信关闭订单 v3 文档v2 文档中的type写法保留了旧版本的调用习惯两者表达的是同一组场景语义。返回值与异常处理close返回Yansongda\Supports\Collection类型的实例你可以通过属性方式访问服务器返回的数据$result $wechat-close([out_trade_no 1514027114]); // 例如判断关单是否成功、读取微信返回的相关字段 // $result-xxx需要特别留意的是关闭订单接口的返回语义微信关单接口在成功时返回 HTTP 204 状态码、响应体为空。从 微信 Provider 的 close 实现 可以看出close在内部派发MethodCalled事件并执行关单链路后返回的是new Collection()空集合而不是携带业务字段的完整响应。因此实践中判断关单是否成功应依赖是否抛出异常而非响应内容若请求链路无异常说明关单请求已被微信受理HTTP 2xx若参数缺失如无out_trade_no会抛出InvalidParamsException若微信返回状态码异常则由 微信响应插件 统一拦截抛出InvalidResponseException错误码RESPONSE_CODE_WRONG提示“微信返回状态码异常请检查参数是否错误”。调用时建议用 try/catch 包裹并记录异常避免关单失败被静默吞掉。源码级原理close 的插件执行链在 Pay v3 架构中close最终由Yansongda\Pay\Shortcut\Wechat\CloseShortcut编排一组插件完成。以默认JSAPI场景为例CloseShortcut 的 jsapiPlugins() 返回的插件链依次为StartPlugin → JsapiClosePlugin组装请求URL、方法、mchid → AddPayloadBodyPlugin组装请求体 → AddPayloadSignaturePlugin对载荷签名 → AddRadarPlugin生成 Guzzle 请求 → VerifySignaturePlugin校验微信响应签名 → ResponsePlugin校验 HTTP 状态码 → ParserPlugin解析响应为 Collection这一插件链在 CloseShortcut 测试用例 中有完整断言可作为理解请求链路的直接证据。场景分发CloseShortcut::getPlugins() 是整个关单逻辑的分发中枢它支持两类触发方式自动识别合单只要参数中包含combine_out_trade_no或sub_orders就自动走合单关单插件链对应测试 testCombineParams_action显式指定场景取值与 WechatAction 中 CLOSE_ 系列常量 一一对应包括default默认等价于 jsapi、app、h5、jsapi、mini、native、combine传入未知场景如virtual、foo则抛出InvalidParamsException错误码PARAMS_SHORTCUT_ACTION_INVALID测试见 testVirtual 与 testFoo。各场景请求地址来自源码场景插件类请求接口普通商户/服务商JSAPI默认Jsapi/ClosePluginPOST /v3/pay/transactions/out-trade-no/{out_trade_no}/close服务商为partner路径APPApp/ClosePlugin同上H5H5/ClosePlugin同上小程序Mini/ClosePlugin同上NativeNative/ClosePlugin同上合单Combine/ClosePluginPOST /v3/combine-transactions/out-trade-no/{combine_out_trade_no}/close普通商户模式下请求体仅包含mchid而合单关单插件还会自动补上combine_appid优先取参数中的值否则回退到配置的公众号appid并剔除combine_out_trade_no避免污染请求体详见 合单关闭插件。服务商模式说明若你处于服务商mode service模式下各关单插件会在装配请求时自动切换到_service_url/v3/pay/partner/transactions/...且请求体由normal()变为service()组装以 Jsapi 关闭插件的 service() 为例会携带sp_mchid服务商商户号与sub_mchid子商户商户号优先取参数中的sub_mchid否则回退到配置项开发者无需手写两套请求逻辑。相关阅读微信概述与快速上手配置、服务商模式微信支付下单 pay微信订单查询 find微信退款 refund微信回调 callbackv3 版本关闭订单_action场景分发与合单关单赞分享后端金融科技【免费下载链接】pay可能是我用过的最优雅的 Alipay/WeChat/Unipay/江苏银行 的支付 SDK 扩展包了项目地址https://gitcode.com/yansongda/pay点击查看免费下载相关推荐微信支付订单关闭接口实战Yansongda Pay SDK 的 close 方法详解与插件链源码解析微信支付订单关闭接口实战Yansongda Pay SDK 的 close 方法详解与插件链源码解析 本指南以仓库文档 web/docs/v2/wechat/金融科技后端支付宝关闭订单实战指南Yansongda Pay close 方法全场景解析支付宝关闭订单实战指南Yansongda Pay close 方法全场景解析 本文基于 Yansongda Pay本仓库讲解支付宝「关闭订单」能力如何通金融科技后端yansongda/pay 微信关闭订单close实战指南普通订单、合单关闭与源码路由解析yansongda/pay 微信关闭订单close实战指南普通订单、合单关闭与源码路由解析 导读 本文聚焦 yansongda/pay本仓库即该项目源码金融科技后端上一篇GitHub中文界面终极指南5分钟告别英文困扰专注代码开发下一篇GitHub中文界面终极指南告别英文障碍的完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

激光雷达反光柱定位拆解:点云提取、位姿解算与AGV实战

激光雷达反光柱定位拆解:点云提取、位姿解算与AGV实战

简介:基于激光雷达实现反光柱三边定位的ROS功能包,面向需要部署低成本定位方案的移动机器人开发者与SLAM/定位算法学习者。包内含两个功能模块:反光柱定位主功能包与反光柱管理节点功能包,已经过优化重构,通过接口适配…

2026/10/15 20:48:45 阅读更多 →
Scikit-opt实战:启发式优化算法选型与调参避坑指南

Scikit-opt实战:启发式优化算法选型与调参避坑指南

1. 为什么我会把优化算法这件事交给一个第三方库第一次接触 Scikit-opt 是在做一个排班优化的小项目。当时的需求很朴素:给一组员工排班,满足每个人的可用时间、连续工作天数限制、每日最低人数要求,同时让总人力成本尽量低。我一开始想的是用…

2026/10/15 20:47:42 阅读更多 →
Star Labs Lite Mk III(StarLite Mk III)coreboot 实战指南:Gemini Lake 板级配置、IFWI 固件与 fwupd 刷写

Star Labs Lite Mk III(StarLite Mk III)coreboot 实战指南:Gemini Lake 板级配置、IFWI 固件与 fwupd 刷写

固件嵌入式操作系统驱动开发 【免费下载链接】coreboot Read-only mirror of https://review.coreboot.org/coreboot.git. Synced every hour. We dont handle Pull Requests. 项目地址: https://gitcode.com/gh_mirrors/co/coreboot 点击查看 免费下载 本文围绕 c…

2026/10/15 20:47:42 阅读更多 →

最新新闻

在 Java 的 IntelliJ IDEA 中使用 Claude Code:把 settings 改到 TaoToken 的完整配置大纲

在 Java 的 IntelliJ IDEA 中使用 Claude Code:把 settings 改到 TaoToken 的完整配置大纲

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

2026/10/15 21:40:55 阅读更多 →
余弦相似度与欧氏距离:相似度度量的核心差异与工程选择

余弦相似度与欧氏距离:相似度度量的核心差异与工程选择

很多人在刚接触机器学习或者做推荐系统、文本匹配的时候,都会遇到两个绕不开的名字:余弦相似度和欧氏距离。这俩确实是衡量"东西像不像"最常用的两个指标,但也是被误解得最深的一对。我见过太多人拿到数据就无脑算一个,…

2026/10/15 21:40:55 阅读更多 →
0成本做小游戏:原型_设计_出图_抠图全白嫖(附链接)——用TaoToken统一Key打通AI出图与抠图工作流

0成本做小游戏:原型_设计_出图_抠图全白嫖(附链接)——用TaoToken统一Key打通AI出图与抠图工作流

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

2026/10/15 21:40:55 阅读更多 →
CE傻瓜教程:从内存扫描到指针链与自动汇编的逆向入门

CE傻瓜教程:从内存扫描到指针链与自动汇编的逆向入门

简介:这是一份面向游戏修改入门者的 Cheat Engine 中文实操教程,以「傻瓜式」讲解降低学习门槛,适合零基础玩家、逆向初学者以及想了解内存修改原理的技术爱好者。资源包内共 1 个 doc 文档,约 3.86MB,内容按关卡递进组…

2026/10/15 21:40:55 阅读更多 →
西门子仿真开发与体系建设:从四层框架到自动化落地

西门子仿真开发与体系建设:从四层框架到自动化落地

简介:西门子仿真开发与体系建设是一份聚焦自动驾驶与高级驾驶辅助系统(ADAS)研发的PDF技术资料,面向汽车行业仿真工程师、项目经理及多学科协同团队,针对当前仿真数据分散、流程无序、知识复用难等痛点,给出…

2026/10/15 21:40:55 阅读更多 →
2026前端AI编程工具实测:从Figma2Code到Agent闭环,TaoToken统一Key怎么配

2026前端AI编程工具实测:从Figma2Code到Agent闭环,TaoToken统一Key怎么配

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

2026/10/15 21:39:55 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/15 9:49:14 阅读更多 →