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

[开源]一个基于Flurl.Http的微信API库基于Flurl.Http的微信APIHTTP库,支持公众平台、开放平台、商户平台、企业微信、广告平台、对话开放平台等模块。

[开源]一个基于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

今天的文章[开源]一个基于Flurl.Http的微信API库分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30044.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注