# Lakala **Repository Path**: abduwaris/lakala ## Basic Information - **Project Name**: Lakala - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-09 - **Last Updated**: 2025-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Munewwer.LakalaPay ![Logo](lakala.png) ## 简介 Munewwer.LakalaPay 是一个基于 .NET Standard 2.1 的拉卡拉支付 SDK,提供了对拉卡拉支付接口的完整封装,使开发者能够轻松集成拉卡拉支付功能到自己的应用中。 ## 特性 - 支持多种支付方式:主扫、被扫、合单支付等 - 提供完整的交易功能:预下单、支付、查询、关单、撤销、退款等 - 支持全报文加密模式 - 支持主流支付渠道:微信、支付宝、银联等 - 使用依赖注入模式,易于集成 - 完善的类型定义和注释 ## 安装 ```bash dotnet add package Munewwer.LakalaPay.Core dotnet add package Munewwer.LakalaPay.Payments ``` ## 快速开始 ### 1. 配置服务 在 `Startup.cs` 或 `Program.cs` 中配置服务: ```csharp services.ConfigureLakalaPay(options => { options.AppId = "你的AppId"; options.SerialNo = "证书序列号"; options.Sm4Key = "国密4密钥"; options.PlatformId = "平台ID"; options.BindOrgCode = "绑定的机构编号"; // 导入证书 options.ImportPublicKey("公钥证书路径"); options.ImportPrivateKey("私钥证书路径", "证书密码"); }); ``` ### 2. 使用服务 ```csharp public class PaymentService { private readonly ILakalaPayService _lakalaPayService; public PaymentService(ILakalaPayService lakalaPayService) { _lakalaPayService = lakalaPayService; } // 创建预订单(主扫模式) public async Task CreatePreOrderAsync(string orderId, decimal amount, string subject) { var request = new LakalaPreOrderRequest { MerchantOrderId = orderId, Amount = (long)(amount * 100), // 转换为分 Subject = subject, PayType = LakalaCardType.WechatPay, // 设置支付方式:微信支付 NotifyUrl = "https://your-domain.com/notify" }; var result = await _lakalaPayService.CreatePreOrderAsync(request); if (result.IsSuccess) { return result.Data.QrCodeUrl; // 返回二维码链接 } throw new Exception($"创建预订单失败:{result.ReturnMsg}"); } // 查询订单 public async Task QueryOrderAsync(string orderId) { var request = new LakalaQueryOrderRequest { MerchantOrderId = orderId }; var result = await _lakalaPayService.GetTradeQueryAsync(request); if (result.IsSuccess) { return result.Data; } throw new Exception($"查询订单失败:{result.ReturnMsg}"); } } ``` ## 支持的支付方式 ### 主扫支付(顾客扫商家) ```csharp // 创建预订单 var result = await _lakalaPayService.CreatePreOrderAsync(request); // 加密模式 var result = await _lakalaPayService.CreateEncryptedPreOrderAsync(request); ``` ### 被扫支付(商家扫顾客) ```csharp // 付款码支付 var result = await _lakalaPayService.CreateMicropayAsync(request); // 加密模式 var result = await _lakalaPayService.CreateEncryptedMicropayAsync(request); ``` ### 合单支付 ```csharp // 主扫合单 var result = await _lakalaPayService.CreateMergePreOrderAsync(request); // 被扫合单 var result = await _lakalaPayService.CreateMergeMicropayAsync(request); ``` ## 其他操作 ### 交易查询 ```csharp var result = await _lakalaPayService.GetTradeQueryAsync(request); ``` ### 关闭订单 ```csharp var result = await _lakalaPayService.CloseTradeOrderAsync(request); ``` ### 撤销交易 ```csharp var result = await _lakalaPayService.RevokeTradeOrderAsync(request); ``` ### 退款 ```csharp // 普通退款 var result = await _lakalaPayService.RefundTradeOrderAsync(request); // 合单退款 var result = await _lakalaPayService.RefundMergeTradeOrderAsync(request); ``` ## 高级配置 ### 切换环境 ```csharp // 测试环境 LakalaPayServiceExtensions.Host = "https://test.wsmsd.cn/sit/api/v3/"; // 生产环境 LakalaPayServiceExtensions.Host = "https://s2.lakala.com/api/v3/"; ``` ### 自定义 HTTP 客户端 ```csharp services.ConfigureLakalaPay( configureOptions: options => { /* 配置选项 */ }, configureClient: client => { client.Timeout = TimeSpan.FromSeconds(30); // 其他 HTTP 客户端配置 } ); ``` ## 支持与贡献 如果您发现任何问题或有改进建议,请提交 Issue 或 Pull Request。 ## 许可证 MIT