找回密码
 立即注册
首页 资源区 代码 .NET 8 开发的跨平台多商户第三方支付SDK

.NET 8 开发的跨平台多商户第三方支付SDK

谅潭好 2025-5-29 10:49:47
前言

快速发展的互联网应用开发中,支付功能已成为各类平台不可或缺的一环。为了帮助大家更高效地接入主流支付渠道,推荐一套基于 .NET 开发的第三方支付 SDK。该 SDK 支持跨平台运行,适用于多种操作系统和设备,并提供对支付宝和微信支付的全面支持。
项目介绍

本SDK 以简化接入流程、提升开发效率为目标,设计上注重易用性与扩展性,特别适合需要快速集成支付功能的多商户应用场景。不管是开发电商平台、SaaS 系统,还是其他需要支付能力的应用,本工具都能提供稳定、灵活且高效的解决方案。
1.png

项目技术

开发环境

  • IDE:Rider、Visual Studio
  • .NET SDK:.NET 9.0
运行环境:支持的.NET版本.NET 8.0、.NET 9.0
配置选项

本 SDK 提供了针对不同支付平台的客户端配置选项,以确保可以轻松地进行定制化设置:

  • AlipayClientOptions: 用于配置与支付宝对接所需的各种参数。
  • WeChatPayClientOptions: 用于配置与微信支付对接所需的各种参数。
  • 配置选项简化开发流程,使得集成支付功能变得更加直观和高效。
项目示例

支付宝 - 示例代码

.NET 开发的第三方支付 SDK 实现支付宝 V3 扫码支付的一个简化步骤:
支付宝 V3 扫码支付实现步骤
1、安装NuGet包
使用命令行工具安装必要的 NuGet 包:
  1. dotnet add package Essensoft.Paylinks.Alipay.Client
  2. dotnet add package Essensoft.Paylinks.Alipay.Payments
复制代码
2、配置依赖注入
在 Startup.cs 或 Program.cs 文件中添加对 AlipayClient 的服务注册:
  1. services.AddAlipay/XMLSchema
复制代码
3、注入 IAlipayClient
在需要使用的地方通过构造函数或方法参数注入 IAlipayClient 实例。
4、支付宝客户端选项
创建并配置 AlipayClientOptions 对象,设置如应用ID、私钥等必要参数(此处省略具体设置):
  1. var options = new AlipayClientOptions()
  2. {
  3.     // 设置您的配置项
  4. };
复制代码
5、创建请求模型
交易预创建模型 AlipayTradePreCreateBodyModel,包括商户订单号、总金额、商品标题和异步通知地址等信息:
  1. var model = new AlipayTradePreCreateBodyModel
  2. {
  3.     OutTradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"),
  4.     TotalAmount = "0.01",
  5.     Subject = "扫码支付测试",
  6.     NotifyUrl = "https://www.domain.com/Alipay/Payments/Notify/TradeResult"
  7. };
复制代码
6、初始化请求对象
创建一个 AlipayTradePreCreateRequest 实例,并将之前准备好的模型绑定到该请求上:
  1. var request = new AlipayTradePreCreateRequest();
  2. request.SetBodyModel(model);
复制代码
7、执行请求并处理响应
调用 client.ExecuteAsync(request, options) 方法发送请求,并检查响应是否成功。如果成功,则可以获取返回的数据进行后续处理:
  1. var response = await client.ExecuteAsync(request, options);
  2. if (response.IsSuccessful)
  3. {
  4.   // 处理成功响应...
  5. }
复制代码
以上步骤提供了一个简化的流程,帮助快速理解和集成支付宝扫码支付功能到.NET 应用程序中。根据实际需求,可能还需要添加异常处理和日志记录等增强功能。
微信支付 - 示例代码

微信支付 V3 Native 下单示例代码整理出的简化步骤说明,便于快速理解与集成:
微信支付 V3 Native 下单实现步骤
1、安装 NuGet 包
使用命令行安装必要的 SDK 组件:
  1. dotnet add package Essensoft.Paylinks.WeChatPay.Client
  2. dotnet add package Essensoft.Paylinks.WeChatPay.Payments
复制代码
2、注册服务(依赖注入)
在 Startup.cs 或 Program.cs 中注册微信支付客户端服务:
  1. services.AddWeChatPayClient();
复制代码
3、注入 IWeChatPayClient
在需要使用的类中通过构造函数注入微信支付客户端实例:
  1. public class PaymentService
  2. {
  3.     private readonly IWeChatPayClient _client;
  4.     public PaymentService(IWeChatPayClient client)
  5.     {
  6.         _client = client;
  7.     }
  8. }
复制代码
4、微信支付客户端配置选项
创建并设置 WeChatPayClientOptions,例如商户私钥、APIv3 密钥等:
  1. var options = new WeChatPayClientOptions()
  2. {
  3.     // 设置您的微信支付相关参数
  4. };
复制代码
5、创建请求模型
构建 Native 支付下单请求模型 WeChatPayTransactionsNativeBodyModel:
  1. var model = new WeChatPayTransactionsNativeBodyModel
  2. {
  3.     AppId = "123456789", // 应用ID
  4.     MchId = "123456789", // 商户号
  5.     Description = "Native下单测试", // 商品描述
  6.     OutTradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"), // 商户订单号
  7.     NotifyUrl = "https://www.domain.com/WeChatPay/Payments/Notify/TransactionSuccess", // 异步通知地址
  8.     Amount = new CommReqAmountInfo { Total = 1 } // 支付金额,单位:分
  9. };
复制代码
6、初始化请求对象并绑定模型
创建 WeChatPayTransactionsNativeRequest 实例,并将模型数据绑定到请求体中:
  1. var request = new WeChatPayTransactionsNativeRequest();
  2. request.SetBodyModel(model);
复制代码
7、执行请求并处理响应
调用 ExecuteAsync 方法发起请求,并判断是否成功:
  1. var response = await client.ExecuteAsync(request, options);
  2. if (response.IsSuccessful)
  3. {
  4.     // 获取预支付交易码(二维码内容),返回给前端生成二维码
  5.     var codeUrl = response.CodeUrl;
  6.     // 可以生成二维码图片或直接跳转至扫码页面
  7. }
  8. else
  9. {
  10.     // 处理错误信息
  11.     Console.WriteLine($"请求失败: {response.ErrorMessage}");
  12. }
复制代码
补充建议


  • 订单号生成:建议封装一个方法生成唯一订单号,如 GenerateOutTradeNo()。
  • 日志记录:推荐使用 ILogger 替代 Console.WriteLine,方便追踪问题。
  • 异常处理:实际生产环境中应加入 try-catch 块,防止未捕获异常中断流程。
  • 多商户支持:可通过 IOptionsMonitor 动态切换不同商户配置。
项目源码

Gitee:https://gitee.com/essensoft/paylinks
GitHub:https://github.com/essensoft/paylinks
总结

以上仅展示了第三方支付SDK的部分功能。更多实用特性和详细信息,请大家访问项目源码。
希望通过本文能为.NET在第三方支付支付宝支付和微信支付开发方面提供有价值的参考。感谢您阅读本篇文章,欢迎在评论区留言交流,分享您的宝贵经验和建议。
最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!
2.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册