[开源]一个基于Flurl.Http的微信API库

公司项目要接入微信支付,公众号管理。当拿到微信提供的示例,还是.NET Framework版。现在 .NET 7都发布了好不好。
然后在NuGet上就找到了这个微信API库。使用体验很棒。它就是SKIT.FlurlHttpClient.Wechat。

技术特性

  • 基于 Flurl.Http,可与 IHttpClientFactory 集成。

  • 支持 .NET Framework 4.6.1+、.NET Standard 2.0+、.NET Core 2.0+、.NET 5、.NET 6。

  • 支持 Windows / Linux / macOS 多平台部署。

  • 支持 System.Text.Json(默认)和 Newtonsoft.Json 两种序列化方式。

  • 异步式编程。

  • 强类型接口模型。

  • 提供拦截器功能。

  • 包含 SourceLink 符号文件,可在项目中无源代码调试。

  • 完整、完善、完全的微信 API 封装。

特点

  • 专注于 API 本身的封装,捎带提供了一些用于加解密、序列化的工具类,使用起来更加灵活,不限任何框架或项目类型;

  • 接口模型遵循的是微软官方推荐的 C# 属性命名方式(帕斯卡命名法)

使用方法

公众号

Install-Package SKIT.FlurlHttpClient.Wechat.Api

初始化

using SKIT.FlurlHttpClient.Wechat;
using SKIT.FlurlHttpClient.Wechat.Api;

var options = new WechatApiClientOptions()
{
    AppId = "微信 AppId",
    AppSecret = "微信 AppSecret",
    MidasAppKey = "米大师相关服务 AppKey,不用则不填",
    ImmeDeliveryAppKey = "即时配送相关服务 AppKey,不用则不填",
    ImmeDeliveryAppSecret = "即时配送相关服务 AppSecret,不用则不填"
};
var client = new WechatApiClient(options);

处理响应

using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Models;

/* 以公众号获取用户信息接口为例 */
var request = new CgibinUserInfoRequest()
{
    AccessToken = "微信 AccessToken",
    OpenId = "微信 OpenId"
};
var response = await client.ExecuteCgibinUserInfoAsync(request);
if (response.IsSuccessful())
{
    Console.WriteLine("昵称:" + response.Nickname);
    Console.WriteLine("头像:" + response.HeadImageUrl);
}
else
{
    Console.WriteLine("错误代码:" + response.ErrorCode);
    Console.WriteLine("错误描述:" + response.ErrorMessage);
}

V3支付

Install-Package SKIT.FlurlHttpClient.Wechat.TenpayV3

初始化

using SKIT.FlurlHttpClient.Wechat;
using SKIT.FlurlHttpClient.Wechat.TenpayV3;
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Settings;

var manager = new InMemoryCertificateManager();
var options = new WechatTenpayClientOptions()
{
    MerchantId = "微信商户号",
    MerchantV3Secret = "微信商户 v3 API 密钥",
    MerchantCertificateSerialNumber = "微信商户证书序列号",
    MerchantCertificatePrivateKey = "-----BEGIN PRIVATE KEY-----微信商户证书私钥,即 `apiclient_key.pem` 文件内容-----END PRIVATE KEY-----",
    PlatformCertificateManager = manager // 证书管理器的具体用法请参阅下文的高级技巧与加密、验签有关的章节
};
var client = new WechatTenpayClient(options);

处理响应

using SKIT.FlurlHttpClient.Wechat.TenpayV3;
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;

/* 以 JSAPI 统一下单接口为例 */
var request = new CreatePayTransactionJsapiRequest()
{
    OutTradeNumber = "商户订单号",
    AppId = "微信 AppId",
    Description = "订单描述",
    ExpireTime = DateTimeOffset.Now.AddMinutes(15),
    NotifyUrl = "https://example.com",
    Amount = new Models.CreatePayTransactionJsapiRequest.Types.Amount()
    {
        Total = 1
    },
    Payer = new Models.CreatePayTransactionJsapiRequest.Types.Payer()
    {
        OpenId = "微信 OpenId"
    }
};
var response = await client.ExecuteCreatePayTransactionJsapiAsync(request);
if (response.IsSuccessful())
{
    Console.WriteLine("PrepayId:" + response.PrepayId);
}
else
{
    Console.WriteLine("错误代码:" + response.ErrorCode);
    Console.WriteLine("错误描述:" + response.ErrorMessage);
}

使用起来还是比较简单的。

项目地址:https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat

公众号:DotNet宝藏库
微信号:fenxiang3389

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
未能加载文件或程序集“flurl.http, version=3.2.4.0, culture=neutral, publickeytoken=null”或它的某一个依赖项。找不到指定的文件。 这个错误通常出现在使用.NET开发的应用程序中,原因可能是以下几种情况之一: 1. 缺少相关的DLL文件:在使用flurl.http组件时,可能没有将所需的DLL文件复制到应用程序的运行目录中。解决方法是确保将flurl.http组件的DLL文件及其所有依赖项都放置在正确的文件路径中。 2. 版本不匹配:可能在代码中使用的flurl.http的版本与实际引用的版本不兼容。解决方法是检查代码中对flurl.http组件的引用,并确保版本号匹配。 3. 缺少依赖项:flurl.http组件可能依赖于其他的组件,而这些组件可能没有正确安装或引用。解决方法是检查flurl.http组件的文档或官方网站,确定是否有其他依赖项需要安装。 4. DLL文件被占用或损坏:在运行应用程序时,flurl.http的DLL文件可能正在被其他程序使用,或者文件本身可能已损坏。解决方法是尝试重新启动计算机,并确保DLL文件没有被其他程序占用。如果问题仍然存在,可以尝试重新下载和安装flurl.http组件。 综上所述,当出现"未能加载文件或程序集“flurl.http, version=3.2.4.0, culture=neutral, publickeytoken=null”"的错误时,需要检查是否缺少相关DLL文件、版本是否匹配、是否存在缺少的依赖项,同时也要注意DLL文件是否被占用或损坏。通过解决这些可能的问题,应该能够解决该错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倾斜的水瓶座

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值