DonnotRain / Alipay.AopSdk.Core

支付宝(Alipay)服务端SDK,采用.NET Standard 2.0,支持.NET Core >=2.0,与官方SDK接口完全相同。完全可以按照官方文档进行开发。除了支持支付以外,官方SDK支持的功能本SDK全部支持,比如生活号、服务窗、行业合作等,且用法几乎一样,代码都可参考官方文档代码。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Member project of .NET Core Community Jenkins

演示地址:https://zfbdemo.xcmaster.com/

Alipay.AopSdk.Core

一.各个组件说明

组件名 说明 版本号
Alipay.AopSdk.Core 服务端SDK,封装了支付宝开放平台的所有API Latest version
Alipay.AopSdk.F2FPay 当面付SDK,提供条码支付、扫码支付能力 Latest version
Alipay.AopSdk.AspnetCore 服务端SDK的ASP.NET Core组件,为了能更好配合ASP.NET Core 使用 Latest version
Alipay.AopSdk.F2FPay.AspnetCore 当面付SDK的ASP.NET Core组件,为了能更好配合ASP.NET Core 使用 Latest version

支付宝(Alipay)服务端SDK,采用.NET Standard 2.0,支持.NET Core >= 2.0,与官方SDK接口完全相同。完全可以按照官方文档进行开发。除了支持支付以外,官方SDK支持的功能本SDK全部支持,且用法几乎一样,代码都可参考官方文档代码。。由于精力有限,所以只做了几个Demo,但是其他功能可以参照官方的Demo来使用。可以使用官方文档中的示例代码。如有问题请加QQ群4656606。

本项目代码基于官方.NET Framework 代码重构而来以及加入了ASP.NET Core的扩展支持。

二.ASP.NET Core 使用

1.安装程序包

Install-Package Install-Package Alipay.AopSdk.AspnetCore

2.添加配置

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";
	        });
}

3.在Controller中使用

//通过di注入
private readonly IAlipayService  _alipayService;

public xxxController(IAlipayService alipayService)
{
	_alipayService = alipayService;

}

_alipayService.Execute();

三.使用当面付(条码支付/扫描支付)

1.安装程序包

Install-Package Alipay.AopSdk.F2FPay.AspnetCore

2.添加配置

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";
	        }).AddAlipayF2F();
}

3.在Controller中使用

private readonly IAlipayF2FService _alipayF2FService;

public xxxController(IAlipayF2FService alipayF2FService)
{
	_alipayF2FService = alipayF2FService;

}

_alipayF2FService.Execute();

四.配置

1.快捷添加配置的方法

appsettings.json里添加如下信息

 "Alipay": {
    "AlipayPublicKey": "",
    "AppId": "",
    "CharSet": "UTF-8",
    "Gatewayurl": "https://openapi.alipaydev.com/gateway.do",
    "PrivateKey": "",
    "SignType": "RSA2",
    "Uid": ""
  }

添加配置代码可改为如下:

public void ConfigureServices(IServiceCollection services)
{
    //配置alipay服务
    ConfigureAlipay(services);
    services.AddMvc();
}

private void ConfigureAlipay(IServiceCollection services)
{
    var alipayOptions = Configuration.GetSection("Alipay").Get<AlipayOptions>();
    //检查RSA私钥
    AlipayConfigChecker.Check(alipayOptions.SignType, alipayOptions.PrivateKey);
    services.AddAlipay(options => options.SetOption(alipayOptions)).AddAlipayF2F();
}

2.在启动时进行私钥检查

通过方法AlipayConfigChecker.Check来在启动时对配置的私钥进行格式检查

AlipayConfigChecker.Check(string signType,string privateKey)

该方法有两个参数第一个为签名算法类型,第二个为私钥。此方法作用为检查私钥是否有效。建议与注入配置的代码一致。

3.密钥生成的方法

解压tool文件夹下keygen.zip压缩包,运行start.bat即可在keys目录下生成公钥和私钥,长度为2048。

这里生成的公钥和私钥,只需将私钥配置到配置文件文件中,公钥需要设置到支付宝后台。然后设置SignTypeRSA2。配置文件中的公钥配置,不是我们自己生成的这个,需要到支付宝后台获取,这里需要注意一下。

1526457521967

五.文档信息

官方文档:

1.演示Demo

实现支付、支付同步回调、支付异步通知、订单查询、退款、退款查询、订单关闭、扫码支付功能

2.教程

3.使用问题集锦

常见问题解答

About

支付宝(Alipay)服务端SDK,采用.NET Standard 2.0,支持.NET Core >=2.0,与官方SDK接口完全相同。完全可以按照官方文档进行开发。除了支持支付以外,官方SDK支持的功能本SDK全部支持,比如生活号、服务窗、行业合作等,且用法几乎一样,代码都可参考官方文档代码。

License:MIT License


Languages

Language:C# 100.0%Language:Batchfile 0.0%