说明:Alipay.AopSdk.Core 源起于 .NET Core 1.1 时期,当时的社区生态还不完善,很多组件都还没有迁移到 .NET Core ,当时有整好碰巧对接支付宝支付,所以基于支付宝官方的 Framework 的源码进行改造,进而诞生了 Alipay.AopSdk.Core,但随着时间的推移,支付宝业务的新增和变更,Alipay.AopSdk.Core 的更新速度远远比不上,而且官方也重构了 .NET SDK ,且配合官方文档以及代码生成器,现在使用十分方便,Alipay.AopSdk.Core 是时候退出舞台了。2020.9.16
组件名 | 说明 | 版本号 |
---|---|---|
Alipay.AopSdk.Core | ASP.NET 项目可以单独安装此组件。服务端SDK,封装了支付宝开放平台的所有API | |
Alipay.AopSdk.AspnetCore | ASP.NET Core 项目可以单独安装此组件。服务端SDK的ASP.NET Core组件,为了能更好配合ASP.NET Core 使用 |
Alipay.AopSdk.F2FPay.AspnetCore、Alipay.AopSdk.F2FPay 在2.3版本已被合并。
支付宝(Alipay)服务端SDK,采用.NET Standard 2.0,支持.NET Core >= 2.0,与官方SDK接口完全相同。完全可以按照官方文档进行开发。除了支持支付以外,官方SDK支持的功能本SDK全部支持,且用法几乎一样,代码都可参考官方文档代码。。由于精力有限,所以只做了几个Demo,但是其他功能可以参照官方的Demo来使用。可以使用官方文档中的示例代码。如有问题请加QQ群4656606。
本项目代码基于官方.NET Framework 代码重构而来以及加入了ASP.NET Core的扩展支持。
Install-Package Install-Package Alipay.AopSdk.AspnetCore
public void ConfigureServices(IServiceCollection services)
{
services.AddAlipay(options =>
{
options.AlipayPublicKey = "支付宝公钥";
options.AppId = "应用ID";
options.CharSet = "密钥编码";
options.Gatewayurl = "支付网关";
options.PrivateKey = "商家私钥";
options.SignType = "签名方式 RSA/RSA2";
options.Uid = "商户ID";
});
}
//通过di注入
private readonly AlipayService _alipayService;
public xxxController(AlipayService alipayService)
{
_alipayService = alipayService;
}
_alipayService.Execute();
private readonly AlipayF2FService _alipayF2FService;
public xxxController(AlipayF2FService alipayF2FService)
{
_alipayF2FService = alipayF2FService;
}
_alipayF2FService.Execute();
在appsettings.json
里添加如下信息
"Alipay": {
"AlipayPublicKey": "",
"AppId": "",
"CharSet": "UTF-8",
"Gatewayurl": "https://openapi.alipaydev.com/gateway.do",
"PrivateKey": "",
"SignType": "RSA2",
"Uid": ""
}
添加配置代码可改为如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddAlipay(Configuration.GetSection("Alipay"));
}
解压tool文件夹下keygen.zip
压缩包,运行start.bat
即可在keys目录下生成公钥和私钥,长度为2048。
这里生成的公钥和私钥,只需将私钥配置到配置文件文件中,公钥需要设置到支付宝后台。然后设置SignType
为RSA2
。配置文件中的公钥配置,不是我们自己生成的这个,需要到支付宝后台获取,这里需要注意一下。
官方文档:
实现支付、支付同步回调、支付异步通知、订单查询、退款、退款查询、订单关闭、扫码支付功能