后端即时通讯金融科技【免费下载链接】WeiXinMPSDK微信全平台 .NET SDK Senparc.Weixin for C#支持 .NET Framework 及 .NET Core、.NET 10.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#.项目地址https://gitcode.com/gh_mirrors/we/WeiXinMPSDK点击查看免费下载导读本文基于 WeiXinMPSDK 仓库中 Apis 目录的命名规则文档系统讲解微信支付 V3 接口层Senparc.Weixin.TenPayV3的代码组织方式为什么BasePay/BasePayApis.cs对应类名是BasePayApis、命名空间统一为Senparc.Weixin.TenPayV3.Apis、文件夹在命名规则中扮演什么角色。读完本文你将掌握在 SDK 中快速定位任意 V3 支付接口类、理解partial class拆分与Current后缀扩展机制的方法并能正确初始化这些 API 类完成真实支付调用。关联文档核心规则一览仓库中 Apis/readme.md 是整层代码组织约定的唯一权威说明原文要点可归纳为三条命名空间所有 V3 支付 API 类统一归属命名空间Senparc.Weixin.TenPayV3.Apis文件与类名一一对应文件BasePayApis.cs对应类名BasePayApis即“文件名 类名”忽略文件夹前缀BasePay等文件夹仅用于物理归档不参与类名拼接。这三条约定决定了开发者在查阅、引用和扩展 V3 接口时的全部代码坐标。下文逐一结合源码展开。Apis 目录总览28 个业务模块文件夹Apis目录位于 src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Apis内部按微信支付官方业务域划分为 28 个文件夹每个文件夹代表一组同类接口文件夹业务域BasePay基础支付JSAPI/APP/H5/Native 下单、查单、退款、账单Apply4Sub服务商模式特约商户进件Apply4Subject商户主体资质提交Profitsharing/ChainBrandProfitsharing分账 / 连锁品牌分账Transfer转账Marketing营销工具代金券、商家券等PayScore微信支付分Complaint消费者投诉Ecommerce电商收付通FaPiao电子发票FundApp资金应用BankComponent银行组件BusinessCircle商圈VehicleParking/ParkingReminder停车 / 停车提醒MedicalInsurance医保MerchantGovernance/MerchantRisk商户治理 / 商户风险Security安全SmartGuide智能引导ProductCoupon单品优惠券DeliveryPlan配送方案BrandApplyment/BrandCard/BrandMemberCard/BrandStore品牌入驻 / 品牌卡券 / 品牌会员卡 / 品牌门店Entities各模块共享的请求 / 返回数据结构每个业务文件夹内部遵循统一的两级Entities子目录组织Entities/RequestData存放请求数据结构Entities/ReturnJson存放返回数据结构且每个文件同样遵循“文件名 类名”的约定如TransactionsRequestData.cs对应TransactionsRequestData类。命名空间规则顶层统一 个别子命名空间按 Apis/readme.md 的约定V3 支付 API 类的命名空间为Senparc.Weixin.TenPayV3.Apis。以 BasePayApis.cs 为例源码第 82~84 行即为namespace Senparc.Weixin.TenPayV3.Apis { public partial class BasePayApis即使用方只需using Senparc.Weixin.TenPayV3.Apis;即可引用到基础支付全部接口而无需关心BasePayApis物理上存放在BasePay文件夹内——这正是“忽略文件夹”约定的直接收益文件夹只是磁盘归档维度命名空间才是引用维度。从源码结构看个别模块如 Apply4SubApis.cs声明了包含模块名的子命名空间Senparc.Weixin.TenPayV3.Apis.Apply4Sub但同样不影响“文件名 类名”的类名规则绝大多数模块类仍以顶层Senparc.Weixin.TenPayV3.Apis为统一命名空间。类名规则文件名决定类名文件夹名不参与拼接文档给出范式文件BasePayApis.cs对应类名BasePayApis。验证仓库可得BasePay/BasePayApis.cspublic partial class BasePayApis位于BasePay文件夹Apply4Sub/Apply4SubApis.cspublic partial class Apply4SubApis位于Apply4Sub文件夹Apply4Subject/Apply4SubjectApis.cs类名同样为Apply4SubjectApis。由此可推导出统一命名公式类名 业务名 Apis后缀如BasePay→BasePayApis、Profitsharing→ProfitsharingApis、Marketing→MarketingApis。也就是说若想知道某个业务文件夹对应的 API 类名直接取文件夹名拼接Apis即可无需再记忆额外规则。“忽略【BasePay】等文件夹”的准确含义文档中“ 忽略【BasePay】等文件夹”一句结合源码应理解为两重含义类名层面文件夹名已经作为类名的组成部分BasePay文件夹 →BasePayApis类因此在 API 命名空间中无需再为文件夹单独维护一层包装避免出现BasePay.BasePayApis之类的冗余层级引用层面调用方不需要感知文件位于哪个文件夹统一从Senparc.Weixin.TenPayV3.Apis命名空间引用。partial class 拆分与 Current 后缀扩展机制观察 BasePay 文件夹 可见两个文件BasePayApis.cs与BasePayApis.AbnormalRefund.cs二者共同组成BasePayApis类——这是 SDK 对“一个业务类的接口过多时按子主题拆文件”的组织手段BasePayApis.cs承载平台证书、下单JsApi/App/H5/Native 及其合单变体、订单查询、退款、账单等主接口BasePayApis.AbnormalRefund.cs承载异常退款相关接口。类似地Apply4Sub目录下存在Apply4SubApis.Current.cs其中的Current后缀表示“当前版本最新补充的接口”与同目录Apply4SubApis.cs中的基础接口分开维护但合并后仍是一个完整类。这一约定与命名空间规则保持一致扩展接口文件只改变文件名不改变类名与命名空间。API 类的初始化构造函数与配置注入所有 V3 API 类均采用“构造函数注入ISenparcWeixinSettingForTenpayV3”的实例化方式非静态类。以 BasePayApis.cs 为例public BasePayApis(ISenparcWeixinSettingForTenpayV3 senparcWeixinSettingForTenpayV3 null) { _tenpayV3Setting senparcWeixinSettingForTenpayV3 ?? Senparc.Weixin.Config.SenparcWeixinSetting.TenpayV3Setting; if (!_tenpayV3Setting.EncryptionType.HasValue) { throw new Senparc.Weixin.Exceptions.WeixinException(没有设置证书加密类型EncryptionType); } }要点参数可空缺省时自动回退到全局配置Senparc.Weixin.Config.SenparcWeixinSetting.TenpayV3Setting构造函数强制校验EncryptionType证书加密类型未配置直接抛出WeixinException避免后续请求在运行时才暴露配置缺失多商户/多配置场景可显式传入各自的ISenparcWeixinSettingForTenpayV3实例实现一套代码调用多套支付配置。初始化后即可调用接口方法例如BasePayApis中的 JsApiAsyncpublic async TaskJsApiReturnJson JsApiAsync(TransactionsRequestData data, int timeOut Config.TIME_OUT) { var url BasePayApis.GetPayApiUrl(Senparc.Weixin.Config.TenPayV3Host /{0}v3/pay/{1}transactions/jsapi, data?.sp_mchid); TenPayApiRequest tenPayApiRequest new(_tenpayV3Setting); return await tenPayApiRequest.RequestAsyncJsApiReturnJson(url, data, timeOut); }请求 URL 通过GetPayApiUrl()拼接内部根据Config.UseSandBoxPay预留沙箱位、根据sp_mchid自动插入partner/服务商路径实际 HTTP 请求由TenPayApiRequest统一承载。接口与微信官方文档章节的对应关系每个业务文件夹内的readme.md记录了该模块对应的微信支付官方文档章节仓库共 12 份此类对应说明见Apis各子目录。例如BasePay/readme.md对应官方文档“基础支付”章节下的所有接口下单、查询、退款、账单等即BasePayApis类的完整接口清单Marketing/readme.md对应“营销工具”章节Profitsharing/readme.md、Complaint/readme.md、Ecommerce/readme.md 等依此类推。对开发者而言这条对应链是“需求 → 官方接口 → SDK 类 → 请求数据结构”的导航捷径先定位业务域文件夹再按文件夹名 Apis得到类名随后在Entities/RequestData与Entities/ReturnJson中按方法名 RequestData/ReturnJson找到配套数据结构。总结一套可复用的定位公式将本文全部规则浓缩为一张速查表关注点规则源码依据命名空间统一为Senparc.Weixin.TenPayV3.Apis个别模块含子命名空间BasePayApis.cs类名文件名即类名XxxApis.cs→XxxApisApply4SubApis.cs文件夹仅作业务归档类名与命名空间不受文件夹层级约束Apis/readme.md拆分扩展partial class支持按子主题拆文件Current后缀表示最新补充接口BasePay 文件夹实例化构造函数注入ISenparcWeixinSettingForTenpayV3缺省回退全局配置并校验EncryptionTypeBasePayApis.cs文档映射各模块readme.md标注官方文档章节Entities/RequestData与ReturnJson存放请求/返回结构BasePay/readme.md掌握这套约定后无论面对哪个微信支付 V3 业务域都能在三步内完成“找到类 → 初始化 → 组装请求数据”的完整调用闭环这也是 WeiXinMPSDK 在接口规模持续扩张下仍能保持代码可导航性的核心组织智慧。赞分享后端即时通讯金融科技【免费下载链接】WeiXinMPSDK微信全平台 .NET SDK Senparc.Weixin for C#支持 .NET Framework 及 .NET Core、.NET 10.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#.项目地址https://gitcode.com/gh_mirrors/we/WeiXinMPSDK点击查看免费下载相关推荐Tsunami 插件命名规范插件名、文件名与目录组织约定Tsunami 插件命名规范插件名、文件名与目录组织约定 本篇指南以 Tsunami 官方《Convention: How to name a plugin》网络安全漏洞扫描应用安全Carbon语言编码规范命名约定与代码组织Carbon语言编码规范命名约定与代码组织 概述 Carbon语言作为C的实验性继任者在编码规范和代码组织方面采用了现代化、系统化的设计理念。本文深入解编程语言编译器标准库曲境(QuJing)开发者指南核心Hook原理与WebSocket通信实现分析曲境 QuJing 开发者指南核心Hook原理与WebSocket通信实现分析 曲境QuJing是一款基于Xposed框架的安卓应用动态监控工具能够在P创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Ghidra MCP 无头服务器部署指南:Docker容器化与CI/CD批量逆向分析 Ghidra MCP 无头服务器部署指南:Docker容器化与CI/CD批量逆向分析 【免费下载链接】ghidra-mcp Ghidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch operati… · 2026/9/25 18:50:30
基于 Simulink 的永磁同步电机(PMSM)模型预测脉宽调制(MP-PWM)控制仿真 目录
一、 核心原理:从“遍历开关”到“连续寻优”
1. MP-PWM 的控制架构
2. 代价函数与权重设计
3. 多物理量约束处理
二、 Simulink 建模步骤(手把手 5 步法)
Step 1:搭建 PMSM 本体与逆变器模型
Step 2:配置… · 2026/9/25 18:50:24
Ragent 流量保护:Redis ZSET 公平排队与分布式并发控制实现原理完整指南 Ragent 流量保护:Redis ZSET 公平排队与分布式并发控制实现原理完整指南 【免费下载链接】ragent 企业级 Agentic RAG 智能体 - 全链路覆盖文档解析、多路检索、意图识别、问题重写、会话记忆、MCP 工具调用与深度思考。面向真实业务场景,从 0 到 1 完整… · 2026/9/25 18:50:12
【老计带你懂AI算法】05:SVM与KNN,一个死磕最优分界线一个干脆看邻居 【老计带你懂AI算法】05:SVM与KNN,一个死磕最优分界线一个干脆看邻居开头:两个画风清奇的分类器
前面几篇讲的线性回归、树模型,思路各有各的主流。这一篇的两位主角,思路都挺有个性,也都是机器学习课本里的… · 2026/9/25 19:12:24
Chunked Prefill 深度调优:平衡首字延迟与生成吞吐的黄金切片步长 Chunked Prefill 深度调优:平衡首字延迟与生成吞吐的黄金切片步长在大促长文本多轮对话、智能客服知识库检索(RAG)以及代码辅助等复杂业务场景中,推理集群经常面临一种极端的“负载撕裂”:一方面,大量在线交… · 2026/9/25 19:12:18
如何优雅的使用codex:HarnessMix或许能给你答案 🚀 Harness Mix:把 17 个 AI 编程智能体装进一个 Codex Desktop,任务还能无缝接力 你是不是也这样:Claude Code 开一个终端、Codex 开一个窗口、Cursor 开一个编辑器……AI 编程工具越装越多,窗口切到手抽筋,上下文复制粘贴到怀疑人生?😩 今天给大家安利… · 2026/9/25 19:12:12
34岁后端工程师转战AI大模型,我的16周学习与求职实战报告(附避坑指南) 本文分享一位34岁Java后端工程师转行AI大模型的实战经验。作者经历了求职碰壁后,通过16周系统学习,成功转型并获得薪资提升。文章揭示了转行关键在于将8年Java经验转化为AI领域价值,提供了学习路径、避坑建议及项目实战经验,适合想… · 2026/9/25 19:12:00
Java没死!掌握AI,年薪30W+!小白程序员收藏这篇转型指南 Java开发面临AI冲击,传统CRUD工作被替代,但懂AI融合的开发者需求暴涨。三大危机(岗位消失、技能断层、薪资落差)倒逼转型,AI工具链(如LangChain4)成新刚需。
最近几年,常有这样的声音… · 2026/9/25 19:12:00
从Java到16K!真实学员3个月转型大模型开发全复盘+收藏 本文分享了学员阿杰从3年Java开发转型大模型应用开发,最终获得16Koffer的真实经历。赵老师通过制定系统学习计划、纠正学习习惯、全程盯进度、做模拟面试和勤复盘,帮助阿杰在3个月内掌握大模型应用开发技能。文章详细还原了阿杰面试现场的真实问答&#… · 2026/9/25 19:11:47
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37